Android / java并非所有写入文本文件的数据都是可读的

时间:2015-12-30 15:50:43

标签: java android io bufferedreader bufferedwriter

好的,所以我试图从服务器检索.txt文件,将其写入本地文件,然后稍后再调用它。

我注意到我在本地复制文件后无法读回文件

起初我认为我的回读代码有问题,因为当我在wordpad或wordpad ++中打开文件时,内容会出现并正确写入,直到我可以告诉文件。

然而经过多次测试后我确定回读代码没有任何明显错误。

所以我添加了一个测试,我为执行复制的代码添加了一些静态写入:

  

bw.write(“这是测试”+“\ r \ n”);

     

bw.write(“我的第一行!”+“\ r \ n”);

     

bw.write(“我的第二行”);

     

bw.write(“继续...... P”+“\ r \ n”);

现在,当我运行它时,所有内容都正确地写入文件(或看起来像),但在回读期间,只读取上面的静态写入。

即使我可以直观地看到文件中的内容,从基于Web的文件中复制的内容(虽然存在)也永远不会回读。

任何帮助将不胜感激

这是我用来读取和复制文件的代码 **这是我在网上阅读的文件  CrewAdviceMasterControlURL = http://lialpa.org/CM3/CrewAdvices/advice_master.txt

public static String GetMasterFileStream(String Operation) throws Exception {

    StringBuilder sb = new StringBuilder();
    BufferedWriter bw = null;
    String inputLine = null;

    URL AdviceMasterControl = new URL(CrewAdviceMasterControlURL);
    File outfile = new File("sdcard/CM3/advices/advice_master.txt");

    if(!outfile .exists()){
        outfile .createNewFile();
    }

    FileWriter fileWriter = new FileWriter(outfile);
    bw = new BufferedWriter(fileWriter);

    BufferedReader in = new BufferedReader(new InputStreamReader(AdviceMasterControl.openStream()));
    System.out.println("Creating the master");
    bw.write("This is the test" + "\r\n");
    bw.write("My first line!" + "\r\n");
    bw.write("My second line ");
    bw.write("keeps going on...P" + "\r\n");


        while ((inputLine = in.readLine()) != null)
        {
            System.out.println(inputLine);   //for producing test output

            sb.append((inputLine + "\r\n"));
            bw.write(String.valueOf(inputLine) + "\r\n");
         }


    in.close();
    bw.close();
    return sb.toString();
}

这是我用来读回来的代码

public static String GetLocalMasterFileStream(String Operation) throws Exception {

String FullPath = "/sdcard/CM3/advices/advice_master.txt";
System.out.println("path is " + FullPath);
    File file = new File(FullPath);
      if (file.canRead() == true) {System.out.println("-----Determined that file is readable");}

    //Read text from file
    StringBuilder text = new StringBuilder();
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;
line = br.readLine();
System.out.println("-----" + line);
    while ((line = br.readLine()) != null) {
        text.append(line);
        System.out.println("-----" + line);   //for producing test output
        text.append('\n');

    }
    br.close();
    return text.toString();

}

1 个答案:

答案 0 :(得分:0)

解决了这个问题。问题是txt文件在服务器上是自己的。当文件通过FTP上传时,ftp程序处于自动状态。这似乎强制上传二进制而不是ASCII。

我用ASCII重新上传,解决了这个问题。