我正在写一个Android的应用程序。两个活动,一个有 TextEdit 来输入“你好消息”,还有一个按钮来将消息保存在内部存储中。二是主要活动。你好消息应该在应用程序启动后出现。
第二个活动:
String s = ((EditText) findViewById(R.id.message_act_editText_hello)).getText().toString();
FileOutputStream fos = openFileOutput(Lab2AndroidActivity.FILENAME, Context.MODE_PRIVATE);
fos.write(s.getBytes());
fos.close();
第一个(主要)活动:
static String FILENAME = "message_file.zip";
FileOutputStream fos;
try {
//piece of code to guarantee that file exists
fos = openFileOutput(Lab2AndroidActivity.FILENAME, Context.MODE_APPEND);
fos.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
fis = openFileInput(FILENAME);
messageString = new StringBuffer("");
while ((length = fis.read(buffer)) != -1) {
String temp = new String(buffer, 0,length);
messageString.append(temp);
fis.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Toast t = Toast.makeText(this, messageString, 3000);
t.show();
我在 logcat 中遇到 IO 异常:
while ((length = fis.read(buffer)) != -1)
但应用程序似乎工作正常(应用程序启动后出现定义的消息)。我试图找到解释,我找到了几个主题,但都是根据大文件,或资产中的文件,或压缩文件。我试图将我的文件命名为
static String FILENAME = "message_file.zip",
static String FILENAME = "message_file.txt",
尝试不同的扩展,但我总是得到相同的 IO 异常。
感谢您的建议。