在我的计算机上打开时,.txt文件似乎有所不同。在任何其他移动设备上似乎都可以

时间:2013-12-19 12:56:09

标签: java android eclipse file-conversion

我新制作的.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**********************

问题出在哪里? :(

1 个答案:

答案 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换行符的编辑器而无需更改文件。