Java myfile.txt中没有任何内容
为什么myfile.txt是空的?我正在尝试将内容附加到myfile.txt,但当我打开它时,它仍然是空的。正在创建文件Java myfile.txt中没有任何内容,java,file,filewriter,Java,File,Filewriter,为什么myfile.txt是空的?我正在尝试将内容附加到myfile.txt,但当我打开它时,它仍然是空的。正在创建文件 import java.io.*; public class NewClass1 { @SuppressWarnings("empty-statement") public static void main(String[] args) throws IOException{ File inputFile = new File("input.
import java.io.*;
public class NewClass1 {
@SuppressWarnings("empty-statement")
public static void main(String[] args) throws IOException{
File inputFile = new File("input.txt");
FileReader in1=null;
in1 = new FileReader("input.txt");
char c;
int count=0;
int r;
String s="";
File file;
file = new File("myfile.txt");
file.createNewFile();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("myfile.txt", true)));
while((r=in1.read())!=-1) {
c = (char)r;
s=s+c;
if (c == '1' ) {
count++;
}
if (c == '\n') {
if (count>1) {
out.print(s);
}
s = "";
count=0;
}
}
}
}
必须刷新并关闭输出文件,才能将最后一个充满字符的缓冲区保存到磁盘
out.flush();
out.close();
的目的是将这些字符保存在内存中的缓冲区中,直到刷新缓冲区为止
调用“close”也应该刷新,因此调用它也应该写入缓冲区
还有其他可能的原因:我假设您已经检查过input.txt不是空的,并且其中至少有一个换行符(\n)。这个算法只会在看到换行符时写入,如果不存在换行符,则不会写入任何内容
最后,我不建议使用“FileWriter”,因为字符编码取决于您的操作环境,而您的操作环境可能会发生变化。最好使用OutputStreamWriter和FileOutputStream指定“UTF-8”(或其他特定字符编码)。您必须刷新并关闭输出文件,才能将最后一个充满字符的缓冲区实际保存到磁盘
out.flush();
out.close();
的目的是将这些字符保存在内存中的缓冲区中,直到刷新缓冲区为止
调用“close”也应该刷新,因此调用它也应该写入缓冲区
还有其他可能的原因:我假设您已经检查过input.txt不是空的,并且其中至少有一个换行符(\n)。这个算法只会在看到换行符时写入,如果不存在换行符,则不会写入任何内容
最后,我不建议使用“FileWriter”,因为字符编码取决于您的操作环境,而您的操作环境可能会发生变化。最好使用OutputStreamWriter和FileOutputStream指定“UTF-8”(或其他特定字符编码)。刷新并关闭?SotiriosDelimanolis说什么?登特,齐平,关上。另外,停止对同一文件创建如此多的引用。这令人困惑。最后,您确定您的计数大于1吗?刷新并关闭?SotiriosDelimanolis说什么?登特,齐平,关上。另外,停止对同一文件创建如此多的引用。这令人困惑。最后,您确定您的计数大于1吗?只需关闭流即可。关闭时,会自动执行刷新。只需关闭流即可。关闭时,将自动执行刷新。