2015-12-30 64 views
0

好吧,我試圖從服務器檢索.txt文件,將其寫入本地文件,然後稍後可以調用它。Android/java並非所有寫入文本文件的數據都是可讀的

我注意到,我無法讀迴文件後,我在本地

複製它起初我還以爲是有毛病我回讀碼,當我在寫字板或寫字板打開文件++內容是存在和正確書面,據我可以告訴該文件。

然而,經過多次測試,我確定沒有什麼顯然是錯誤的回讀代碼。

所以我添加一個測試,我添加一些靜態寫入到執行復制的代碼:

bw.write(「這是測試」 +「\ r \ n」);

bw.write(「My first line!」+「\ r \ n」);

bw.write(「My second line」);

bw.write(「keep going on ... 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

我只能看到你寫的東西(通過閱讀你的代碼也很明顯)。但我看不到你讀的(應該是相同的)。但是,如果你得到了你所放的東西......那麼它就可以工作。如果是這樣,我無法理解這篇文章的意思。 –

回答

0

解決了這個問題。問題在於服務器上的txt文件本身。當通過FTP上傳文件時,ftp程序處於自動狀態。這似乎強制上傳二進制代替ASCII。

我重新上傳了ASCII碼,它解決了這個問題。

相關問題