2012-11-09 74 views
0

我想在android中讀取文件。 我習慣在java中這樣做,但在這裏我得到一個打開失敗enoent(沒有這樣的文件或目錄)錯誤。 我不知道如何導入文件。我應該把它放在與我的應用程序相同的目錄中嗎?現在它在我的桌面上。 這裏是我的代碼在android中讀取文件。如何修復不良路徑

package com.androidplot.fun; 
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 

public class ReadFile { 
    private String path; 
    public ReadFile(String file_path){ 
     path = file_path; 
    } 
    public String[] OpenFile() throws IOException{ 
     FileReader fr = new FileReader(path); 
     BufferedReader textReader = new BufferedReader(fr); 
     int numberOfLines = 3; 
     String[ ] textData = new String[numberOfLines]; 
     int i; 
     for (i=0; i < numberOfLines; i++) { 
      textData[ i ] = textReader.readLine(); 
     } 
     textReader.close(); 
     return textData; 
    } 
    int readLines() throws IOException{ 
     FileReader file_to_read = new FileReader(path); 
     BufferedReader bf = new BufferedReader(file_to_read); 

     String aLine; 
     int numberOfLines = 0; 
     while ((aLine = bf.readLine()) != null){ 
      numberOfLines++; 
     } 
     bf.close(); 
     return numberOfLines; 
    } 

} 

這是我一直在使用的類。這是我在用我的主程序

try{ 
    ReadFile file = new ReadFile("/Users/jonathon/Desktop/data.txt"); 
    String[] aryLines = file.OpenFile(); 
    int x; 
    for (x=0; x < aryLines.length; i++) { 
     System.out.println(aryLines[ i ]) ; 
    } 
} 
catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 

回答

1

這個文件將與您的應用程序捆綁在一起?如果是這樣,你應該把它作爲一個資源。以下是link,其中包含一些關於如何完成此操作的一般信息。

編輯:我只是看看你的文件路徑。在Android模擬器上運行的代碼無法訪問您的Windows桌面。啓動模擬器,將數據傳輸給它,然後讓應用程序嘗試從「手機」中讀取它。

+0

否它只是一些測試數據,我想運行並查看結果在我的模擬器中 – Jonathan

+0

對不起,我最初沒有看到您的文件路徑。答案已更新。 – Billdr

+0

我剛纔提到:p您需要將文件移動到您的設備的仿真SDCard上。 – Doomsknight

0

該路徑無效。如果您想將其存儲在SD卡上,請從以下位置開始: Environment.getExternalStorageDirectory().getAbsolutePath();

這應該返回SD卡的根目錄,並且您可以直接在其中創建文件或創建自己的結構。 (另外,我個人並不喜歡模擬器,除非我想測試我的手機不能做的事情,比如不同版本的Android,我插上手機並嚴格測試,從模擬器的笨重程度來看是的,我懷疑Google開發人員也這樣做......)