在android中读取文件。如何修复坏道路

时间:2012-11-09 16:01:29

标签: java android

我正在尝试在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() );
 }

2 个答案:

答案 0 :(得分:1)

此文件是否与您的应用程序捆绑在一起?如果是这样,您应该将其作为资源包含在内。这是一个link,其中包含有关如何实现这一目标的一般信息。

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

答案 1 :(得分:0)

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

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