我已经解决了自己的问题,但我不知道为什么我的第一次尝试不起作用,我希望有人可以告诉我为什么。 我也希望有人能告诉我,我的最终解决方案是否是“好的”(我的意思是,这是否有效)?
这是我第一次尝试读取我之前创建的输入文件:
private byte[] mInputData;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_view);
Intent myIntent = getIntent();
mFilename = myIntent.getStringExtra("FILENAME");
mSplitSeq = myIntent.getStringExtra("SPLIT_SEQ");
try {
fis = openFileInput(mFilename);
fis.read(mInputData);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这是我在网上找到的实际工作:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_view);
Intent myIntent = getIntent();
mFilename = myIntent.getStringExtra("FILENAME");
mSplitSeq = myIntent.getStringExtra("SPLIT_SEQ");
try {
fis = openFileInput(mFilename);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
String line = null, input="";
while ((line = reader.readLine()) != null)
mTimeStr += line;
reader.close();
fis.close();
//fis.read(mInputData);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我在第一次实现时收到的错误是在调用fis.read(mInputData)函数时出现NullPointerException。
答案 0 :(得分:3)
我很确定这是因为mInputData永远不会被初始化。你需要一条线,如mInputData = new byte[1000];
。相反,您告诉read()
将数据提供给等于null的引用,即NullPointerException。