0

我正在尝试在android中读取文件。我习惯于在 java 中执行此操作,但在这里我得到一个打开失败的 enoent(没有这样的文件或目录)错误。我不确定如何导入文件。我应该把它和我的应用程序放在同一个目录中吗?现在它在我的桌面上。这是我的代码

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() );
 }
4

2 回答 2

1

该文件是否会与您的应用程序捆绑在一起?如果是这样,您应该将其作为资源包含在内。这是一个链接,其中包含有关如何完成此操作的一些一般信息。

编辑:我只是看了你的文件路径。在 android 模拟器上运行的代码将无法访问您的 Windows 桌面。启动模拟器,将数据传输给它,然后让应用程序尝试从“电话”中读取它。

于 2012-11-09T16:08:16.413 回答
0

该路径将无效。如果要将其存储在 SD 卡上,请从以下步骤开始: Environment.getExternalStorageDirectory().getAbsolutePath();

这应该返回 SD 卡的根目录,您可以将文件直接放在那里或在其下创建自己的结构。(另外,就个人而言,除非我想测试我的手机无法做的事情,比如不同版本的 Android,否则我不会打扰模拟器。我将手机插入并严格测试。从模拟器的笨重程度来看是,我怀疑谷歌开发人员也这样做......)

于 2012-11-09T16:22:50.043 回答