好的,所以我试图从服务器检索.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();
}
答案 0 :(得分:0)
解决了这个问题。问题是txt文件在服务器上是自己的。当文件通过FTP上传时,ftp程序处于自动状态。这似乎强制上传二进制而不是ASCII。
我用ASCII重新上传,解决了这个问题。