import java.util.*;
import java.io.*;
public class CopyFile {
static Scanner sc = new Scanner(System.in);
public static void main (String[] args) throws IOException{
File fin = new File("");
File fout = new File("");
// nome dos ficheiros de entrada e saida
if(args.length==1){
fin = new File(args[0]);
System.out.print("Ficheiro de saida: ");
fout = new File(sc.nextLine());
}else if(args.length==2){
fin = new File(args[0]);
fout = new File(args[1]);
}else if(args.length==0){
System.out.print("Ficheiro de entrada: ");
fin = new File(sc.nextLine());
System.out.print("Ficheiro de saida: ");
fout = new File(sc.nextLine());
}
// condiçoes do ficheiro de entrada
do{
if(fin.exists()==false){
System.out.print("O ficheiro de entrada não existe, volte a introduzir um novo ficheiro: ");
fin = new File(sc.nextLine());
}else if(fin.canRead()==false){
System.out.print("O ficheiro de entrada nao pode ser lido, volte a introduzir um novo ficheiro: ");
fin = new File(sc.nextLine());
}
}while(fin.exists()==false);
// condiçoes do ficheiro de saida
do{
if(fout.canWrite()==false){
System.out.print("O ficheiro de saida nao pode ser modificado, volte a introduzir um novo ficheiro: ");
fout = new File(sc.nextLine());
}
}while(fout.canWrite()==false);
Scanner scf = new Scanner (fin); //para o ficheiro de entrada ser lido
PrintWriter pw = new PrintWriter(fout); // para o escrever sobre o ficheiro de saida
do{
pw.println(scf.hasNextLine());
}while(scf.hasNextLine()==true);
scf.close();
pw.close();
}
}
У меня есть вопрос, потому что, прежде чем это произойдет нормально. Я спрашиваю только файлы, и после того, как я ввожу последний файл, похоже, что они хотят что-то еще написать, и я не понимаю, почему, и программа не завершает sh. Файл, который я рассматривал, был один с ничего (файл из) и один с вещами, написанными как (файл в)
ASDASd
sdfsdfs
fqgqerqe
erqertq
do{
pw.println(scf.hasNextLine());
}while(scf.hasNextLine()==true);