我正在尝试创建一个文件并将数据保存到它,然后我希望能够读取它并且是否可以取出特定数据。
所以这是我创建和打开文件的代码。
public void createFile(View view) throws IOException {
String FILENAME = "hello_file";
String string = "hello world";
FileOutputStream fos = openFileOutput(FILENAME,Context.MODE_APPEND);
fos.write(string.getBytes());
fos.close();
}
public void openFile(View view) throws IOException{
String FILENAME = "hello_file";
FileInputStream g = openFileInput(FILENAME);
System.out.println(g.read());
g.close();
}
由于 read()返回一个int,并且该值是一个String,如果我理解正确的话,每次存储一个。
解析是否应该是一种选择?
答案 0 :(得分:0)
我目前使用这两种方法来读取和写入android中的文件:
public String readFromInternalFile(String fileName) throws IOException {
InputStream fis = context.openFileInput(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
String readData = ois.readObject().toString();
return readData;
}
public void writeToInternalFile( String text, String fileName) {
try {
OutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(text);
fos.close();
oos.close();
}
catch (Exception e){
e.printStackTrace();
}
}
第二种方法会将您的对象写入内部文件,而不是外部存储器,第一种方法也是读取对象。这里我将对象作为String读取,但这当然取决于您写入文件的对象类型。您可以替换readFromInternalFile
的返回方法并将其设为Object
,并将writeToInternalFile
的参数从String text
更改为Object objectToWrite
,以便您轻松阅读和使用相同的方法将任何对象写入文件。
因此,对于通用的读写方法,您将拥有:
public Object readFromInternalFile(String fileName) throws IOException {
InputStream fis = context.openFileInput(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
Object readData = ois.readObject();
return readData;
}
public void writeToInternalFile( Object objectToWrite, String fileName) {
try {
OutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(objectToWrite);
fos.close();
oos.close();
}
catch (Exception e){
e.printStackTrace();
}
}