我正在尝试在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() );
}
答案 0 :(得分:1)
此文件是否与您的应用程序捆绑在一起?如果是这样,您应该将其作为资源包含在内。这是一个link,其中包含有关如何实现这一目标的一般信息。
编辑:我刚看了一下你的文件路径。在Android模拟器上运行的代码无法访问您的Windows桌面。启动模拟器,将数据传输到模拟器,然后让应用程序尝试从“手机”中读取它。
答案 1 :(得分:0)
该路径无效。如果要将其存储在SD卡上,请从以下位置开始:
Environment.getExternalStorageDirectory().getAbsolutePath();
这应该返回SD卡的根目录,您可以直接将文件放在那里或在其下创建自己的结构。 (另外,就个人而言,我不打扰模拟器,除非我想测试我的手机无法做的事情,比如不同版本的Android。我插上手机并严格测试。来自模拟器的笨重是的,我怀疑谷歌的开发者也是这样做的......)