[英]Printing a new line in a file, in Java
我的目标是创建具有特定扩展名的所有文件的索引,并将其存储到index.txt中。 我得到了所有正确的结果,但没有将'文件'放到新行上,这是我的代码的快照:
OutputStream f0 = new FileOutputStream("index.txt");
String ind[] = f.list(only); // logic for getting only relevant files
for(int i=0;i<ind.length;i++)
{
File n = new File(path + "/" +ind[i]);
System.out.println(ind[i]+ " is a " +exten +" file");
ind[i]+="\n"; // doesnt work
f0.write(ind[i].getBytes()); // here i am writing the filenames
}
是因为getBytes()函数忽略了“/ n”? 请告诉我应该怎么做。 我想每次退出for循环时插入一个新行。
一个主要的编辑:当我用notepad ++或wordpad打开文件时,我得到了所需的结果,但是当我用记事本打开文件时,我得到的结果在同一行。 请解释一下!
试着写:
System.getProperty("line.separator")
而不是\\ n
我没有使用FileOutputStream,而是使用PrintWriter。
PrintWriter out = new PrintWriter("index.txt");
String ind[] = f.list(only); // logic for getting only relevant files
for(int i=0;i<ind.length;i++)
{
File n = new File(path + "/" +ind[i]);
System.out.println(ind[i]+ " is a " +exten +" file");
out.println(ind[i]);
}
这里缺少一个假设。
\\r\\n
。 \\n
。 \\r
。 System.getProperty("line.separator")
(或使用.println()
打印新行) 。 您是否有任何理由在Java中使用如此低级别的I / O? 首先,你应该使用Writers而不是OutputStreams。
然后,如果您使用PrintWriter,您可以取消getBytes部分:
PrintWriter f0 = new PrintWriter(new FileWriter(“index.txt”));
然后......
f0.print(IND [I]);
最后你的问题,简单地在循环之外
f0.println();
尝试这个,
FileWriter.write("\r\n");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.