我不知道为什么会这样。

BufferedWriter writer = new BufferedWriter(new FileWriter("mnt/sdcard/Menu.ini"));
for (int i = 0; i < AppItem.length; i++) {
    writer.write(AppItem[i]);
    writer.newLine();
}
writer.close();


在Java中,它运行良好。当我在Android中执行操作时,创建的文件(menu.ini)不接受newLine();。我尝试用"\n"System.getProperty("line.separator")代替writer.newLine();
问题是,所有字符串都排成一行,而矩形框正好出现在行尾。

可以将字符串数组写入文件的任何解决方案或任何其他方法。
谢谢

最佳答案

BufferedWriter.newline()将使用特定于平台的分隔符。


  提供了newLine()方法,该方法使用平台自己的由系统属性line.separator定义的行分隔符概念。并非所有平台都使用换行符('\ n')来终止行。因此,调用此方法终止每条输出行比直接编写换行符更好。


http://docs.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html

但是我的理解是,您正在Windows的记事本中查看该文件,因为它是在其他平台上创建的,因此无法识别分隔符。

所以您的代码很好,但是您的测试是错误的:)

如果您的目标是在记事本中看到它,请将行分隔符更改为\r\n

关于java - BufferedWriter.newLine()在Android中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17724458/

10-09 09:41