Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FileWriter仅显示最后一行_Java_Filewriter - Fatal编程技术网

Java FileWriter仅显示最后一行

Java FileWriter仅显示最后一行,java,filewriter,Java,Filewriter,当我使用System.out.println(data)显示变量数据时,它会显示“filename.txt”的内容(所有行)。 但是,当我使用myWriter.write(data)时,它只写入初始文件的最后一行。 我的任务是读取一个文件(在本例中为filename.txt),并将其内容复制到一个新文件(new.txt) PackageJavaApplication13; 导入java.io.File; 导入java.io.FileNotFoundException; 导入java.util.S

当我使用
System.out.println(data)
显示变量数据时,它会显示“filename.txt”的内容(所有行)。 但是,当我使用
myWriter.write(data)
时,它只写入初始文件的最后一行。 我的任务是读取一个文件(在本例中为
filename.txt
),并将其内容复制到一个新文件(
new.txt

PackageJavaApplication13;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
导入java.io.PrintWriter;
导入java.io.FileWriter;
导入java.io.IOException;
公共类读取文件{
公共静态字符串数据;
公共静态void main(字符串[]args)引发IOException{
试一试{
File myObj=新文件(“C:\\Users\\Admin\\Documents\\NetBeansProjects\\JavaApplication13\\src\\JavaApplication13\\filename.txt”);
尝试(Scanner myReader=new Scanner(myObj)){
做{
data=myReader.nextLine();
}
while(myReader.hasNextLine());
PrintWriter out=new PrintWriter(“C:\\Users\\Admin\\Documents\\NetBeansProjects\\JavaApplication13\\src\\JavaApplication13\\new.txt”);
FileWriter myWriter=newfilewriter(“C:\\Users\\Admin\\Documents\\NetBeansProjects\\JavaApplication13\\src\\JavaApplication13\\new.txt”);
myWriter.write(数据);
myWriter.close();
out.close();
myReader.close();
} 
} 
catch(filenotfounde异常){
System.out.println(“发生错误”);
}
}
}

循环的每次迭代都会打开一个新的写入程序,然后写入,从而覆盖文件。相反,您应该在循环之前打开writer一次,然后在完成编写后关闭它。例如:

try(FileWriter myWriter=newfilewriter(“C:\\Users\\Admin\\Documents\\NetBeansProjects\\JavaApplication13\\src\\JavaApplication13\\new.txt”)){
while(myReader.hasNextLine());
myWriter.write(myReader.nextLine());
} 
} 

Create,使用双参数构造函数
append=true
否则每次都会覆盖文件。
do{data=myReader.nextLine();}while(myReader.hasNextLine())您认为该代码的作用是什么?你怎么会这么想?我试过了,但很遗憾,我不知道为什么它会显示相同的结果。。。无论如何谢谢你@Pshemo d'oh!你当然是对的。编辑和固定。