我正在尝试在内部保存一些用户数据。理想情况下,我想保存
String[] text;
String name;
String file_name;
一起放在一个(由于缺乏更好的术语)包中,然后使用所有保存的名称
与其他数据来填充另一个 Activity ListView ,我可以在其中加载保存的信息。这是我尝试用来保存信息的代码:
Button fileName;
fileName = (Button) findViewById(R.id.save_text);
fileName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
outputStream = openFileOutput(file_name, Context.MODE_APPEND);
ObjectOutputStream phone_save = new ObjectOutputStream(outputStream);
phone_save.writeObject(name);
phone_save.writeObject(text);
Log.i("Save", "Files saved");
} catch (Exception e) {
e.printStackTrace();
}
}
});
然后这是尝试获取已保存信息的代码(目前我只是尝试设置 TextView 的文本,而不是 ListView )
Button load;
TextView load_text
load = (Button) findViewById(R.id.load);
load.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
fin = openFileInput(file_name);
ObjectInputStream ois = new ObjectInputStream(fin);
String[] Loaded_Text = (String[]) ois.readObject();
ois.close();
load_text.setText(Html.fromHtml(Arrays.toString(Loaded_Text)));
} catch (Exception e) {
e.printStackTrace();
}
}
});
我在保存和加载数据时遇到问题,当我按下文件名按钮时,没有日志语句出现,并且当我按下加载按钮时,textView 中没有任何内容。基本上这些都不起作用,而且我完全不知道如何解决它。我确信这段代码是一团糟,但这确实是我第一次使用存储。谢谢大家!
最佳答案
发布为您可以接受的答案。
您是否考虑过使用SharedPreferences
?我认为这比写入和读取文件要简单得多。您存储键值对,因此任何数据都需要一个唯一的字符串来标识它。
prefs.putString("key1",stringValue);
prefs.putString("key2", anotherStringValue);
您只需要在字符串数组与字符串之间进行转换。
关于java - 如何将数组和字符串一起保存到一个紧凑的包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28127324/