如何为文本文件写一个单独的行

时间:2012-12-19 23:17:10

标签: java android

因此,当我使用FileOutputSstream写入我的文本文件时,我使用了两者

fos.write(("0"+"\n").getBytes());

fos.write(System.getProperty("line.separator").getBytes());

并且它们都不起作用......它们仍然在同一条线上打印......

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

好的,所以我想出来...出于某种原因,当我在这里尝试每个例子时,唯一有效的是ps.print(“one \ r \ n”); 它真的很奇怪,因为我知道它为什么有效,但它确实......

答案 1 :(得分:1)

使用PrintStream

例如,System.out是一个PrintStream。

你说你有一个FileOutputStream。然后,

FileOutputStream f = new FileOutputStream("test.txt");
PrintStream ps = new PrintStream(f);
ps.print("line1");
ps.println(); //this writes your new line
ps.print("line2");
ps.close();

你也可以使用;

BufferedWriter fos = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename)));
      fos.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
      fos.newLine();

答案 2 :(得分:1)

每个平台的换行符都不同。对于unix系统(MacOS X,Linux,...和Android,因为它使用修改后的Linux内核),行分隔符为0x0A;对于MS Windows,它的长度为两个字节:0x0D,0x0A;对于老式MacOS,它是0x0D

这意味着当由一个特别愚蠢的Windows程序(如Notepad.exe)打开时,Android编写的Android换行符将不可见。更聪明的程序(例如编程编辑器或IDE)将毫无问题地显示它。

答案 3 :(得分:1)

您可以使用println方法

PrintStream ps=new PrintStream(new FileOutputStream("outputPath"));
for(String line:lines)
    ps.println(line);

答案 4 :(得分:0)

使用此:

public  byte[] newLine() {
    byte[] temp = new byte[2];
    temp[0] = 13;
    temp[1] = 10;
    return temp;
}

只需将此内容写入FileOuputStream即可。 像这样:

    FileOutputStream.write(newLine());

这将简单地写入字节:13和10。

答案 5 :(得分:-1)

你必须像这样附加行分隔符/中断。

尝试

String separator = System.getProperty("line.separator");
    fos.append(seperator);