Java 安卓:Can';无法使用FileInputStream从文件中读取
我正在尝试读取我的res/raw文件夹中名为“quick_questions.txt”的文件。我编译的代码,但看起来好像在到达FileInputStream之前就停止了。也许它是在打开它,但不是在读它。我不确定Java 安卓:Can';无法使用FileInputStream从文件中读取,java,android,fileinputstream,Java,Android,Fileinputstream,我正在尝试读取我的res/raw文件夹中名为“quick_questions.txt”的文件。我编译的代码,但看起来好像在到达FileInputStream之前就停止了。也许它是在打开它,但不是在读它。我不确定 import java.io.*; import android.app.Activity; import android.content.Context; import android.content.res.Resources; public class Questions ext
import java.io.*;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
public class Questions extends Activity {
public String[][] questions = new String[10][5];
public void fillArray() {
{
Context con = null;
try {
//fis = new BufferedInputStream(new FileInputStream("res/raw/quiz_questions.txt"));
FileInputStream fis = (FileInputStream) con.getResources().openRawResource(R.raw.quiz_questions);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String nextLine;
int i = 0, j = 0;
while ((nextLine = br.readLine()) != null) {
if (j == 5) {
j = 0;
i++;
}
questions[i][j] = nextLine;
}
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
你没有发布它,但我想你会得到一个NullPointerException。这是因为当您尝试创建
FileInputStream
时,con
为null
InputStream is = getResources().openRawResource(R.raw.quiz_questions);
由于活动
已经是上下文
,因此您可以从语句中删除con
。(您还应该使用InputStream
接口,而不是FileInputStream
)
最后,您应该重新组织代码,以便无论是否引发异常,都能关闭:
public void fillArray() {
try (InputStream is = getResources().openRawResource(R.raw.quiz_questions)) {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String nextLine;
int i = 0, j = 0;
while ((nextLine = br.readLine()) != null) {
if (j == 5) {
j = 0;
i++;
}
questions[i][j] = nextLine;
}
} catch (Exception e) {
e.printStackTrace();
}
}
你说得对。我得到了一个NullPointerException,我只是没有注意到。我试着按照你的建议编辑我的代码,但仍然没有成功。好吧,现在我不再得到NullPointerException了。非常感谢您的帮助。android.content.res.AssetManager$AssetInputStream无法转换为java.io。FileInputStream@RavinderPayal-谢谢你接电话。我更新了我的答案,以消除对FileInputStream
的不必要(和不正确)使用。感谢@TedHoppConsider使用。