我新制作的.txt文件出现了一个奇怪的问题。
我的Android程序正在将字符串写入.txt文件。
这是我的方法:
public void generateNoteOnSD(String sFileName, String sBody){
try
{
File root = new File(Environment.getExternalStorageDirectory(), "Grafy");
if (!root.exists()) {
root.mkdirs();
}
File gpxfile = new File(root, sFileName + ".txt");
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.append("**************\n");
writer.flush();
writer.close();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
e.printStackTrace();
}
}
以下是我调用方法的方法:
String s = "0 1 0 0 1 0\n1 0 1 0 1 0\n0 1 0 1 0 0\n0 0 1 0 1 1\n1 1 0 1 0 0\n0 0 0 1 0 0\n";
generateNoteOnSD("test", s);
问题是我的.txt文件看起来像这样(当我在手机上打开它时):
0 1 0 0 1 0
1 0 1 0 1 0
0 1 0 1 0 0
0 0 1 0 1 1
1 1 0 1 0 0
0 0 0 1 0 0
**********************
但是当我在我的电脑上打开这个文件时,'\ n'字符消失了... o.o并且文件看起来像这样:
0 1 0 0 1 01 0 1 0 1 00 1 0 1 0 00 0 1 0 1 11 1 0 1 0 00 0 0 1 0 0**********************
问题出在哪里? :(
答案 0 :(得分:3)
换行符由Windows操作系统中的"\r\n"
(回车符+换行符)组成,而在* NIX中,换行符仅由"\n"
组成。这就是为什么它适用于你的手机,它可能在Linux内核上运行,而在你的Windows机器上则不然。
将换行符保存为"\r\n"
而不仅仅是"\n"
没有任何实际损害,这将在Windows和Linux操作系统上正确显示。
Wikipedia article on Newlines提供了有关此事的良好信息。
以下是text editors, along with their newline support的便捷列表。您可以使用支持UNIX换行符的编辑器而无需更改文件。