Android两个相同的文件写入 - 一个使用0D0A,另一个使用0A

时间:2014-03-02 04:36:04

标签: android

我按两个按钮按下一个接一个地写两个文件。除了文件名

之外,代码是相同的
try{
    FileWriter fw = new FileWriter(fileName,true);
    //fw.write(String.format("%s,%s,%s",name, latitude, longitude));
    fw.write("hello world");
    fw.write(String.valueOf("\n"));
    fw.flush();
    fw.close();
}

在一个文件中,我的行在0D0A中终止,在另一个文件中仅在0A中终止。两者都是按下按钮的结果。

事实上,我将上面的代码复制到每个例程中并尝试了。我尝试删除该文件并重新开始查看是否有某种未知(对我而言)文件属性正在运行。

我所有其他文件都使用0D0A,这就是我希望在所有文件中看到的内容。

我不知道发生了什么或如何改变它。

谢谢,

阿伦

PS。我在onCreate上添加了一个声明

System.setProperty(“line.separator”,“\ r \ n”)并没有任何区别。

线索:我程序中的另一个例程可以重写有问题的文件。在这之后,我可以在文件的末尾添加内容,并且像我期望的那样获得0D0A。

创建该文件的人在Netherland中,因此它可能是一些隐藏文件属性。我怎么能强迫事情发生呢?


此文件无效。最后一行仅以0A结束。

SVC9,51.606722,3.852682
SVC8,51.616598,3.822033
SVC7,51.608025,3.836555
SVC6,51.615535,3.805132
SVC5,51.609053,3.820373
SVC4,51.614403,3.787843
SVC3,51.606722,3.798665
SVC16,51.609968,3.882362
SVC12,51.613443,3.86097
SVC11,51.604355,3.870577
SVC1,51.600272,3.751823
SVC10,51.617602,3.839977
SVC14O,51.610825,3.877807
aa, 51.6068687, 3.8523572

我重新编写了同一个文件并添加了一行bb,这很好。

SVC9,51.606722,3.852682
SVC8,51.616598,3.822033
SVC7,51.608025,3.836555
SVC6,51.615535,3.805132
SVC5,51.609053,3.820373
SVC4,51.614403,3.787843
SVC3,51.606722,3.798665
SVC16,51.609968,3.882362
SVC12,51.613443,3.86097
SVC11,51.604355,3.870577
SVC1,51.600272,3.751823
SVC10,51.617602,3.839977
SVC14O,51.610825,3.877807
aa, 51.6068687, 3.8523572
bb, 51.6068687, 3.8523572

重写修复了0A问题,因为我写了一个“\ n”,它在该代码中给了我0D0A。您无法在上面的文件中看到任何差异。但在二进制查看器中,坏文件以0A结尾,而好文件以0D0A结束。


我改变了我的代码。现在我写入了有效的文件和使用相同功能的文件。

这是有效的电话

String fileName = baseDir + "/StartLine/Waypoint_log.csv";
String contents = String.format(Locale.US,"%s,%s,%s,%s,%s,0,%s\n",markTypeNumber,markType,(String)s,latitude,longitude,name);
String message = "Mark";
writeToFile(fileName, contents, message);

这是不起作用的电话

String fileName = baseDir + "/StartLine/waypoints/" + fileUsed;
String contents = String.format(Locale.US,"%s,%s,%s\n",name,latitude,longitude);
writeToFile(fileName,  contents, "Waypoint");

这是写

的例程
public void writeToFile(String fileName, String contents, String message){
    try{
        FileWriter fw = new FileWriter(fileName,true);
        fw.write(contents);
        fw.flush();
        fw.close();
        Toast toast=Toast.makeText(this, message + " Saved",Toast.LENGTH_SHORT);
        toast.show();
    }
    catch(Exception e){
        Toast toast=Toast.makeText(this, "ERROR: " + "message" +  "NOT Saved",Toast.LENGTH_SHORT);
        toast.show();
    }
}

0 个答案:

没有答案