创建文件并取出特定数据
create a file and take out specific data
我正在尝试创建一个文件并将数据保存到其中,然后我希望能够读取它,如果可能的话,我想取出特定数据。
这是我创建和打开文件的代码。
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 值是一个字符串,如果我理解正确的话,它一次存储一位。
解析应该是一个选项吗?
我目前使用这两种方法读写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();
}
}
第二种方法会将您的对象写入内部文件,而不是外部存储,第一种方法也是读取对象。在这里,我将对象作为字符串读取,但这当然取决于您写入文件的对象类型。您可以替换 readFromInternalFile
的 return 方法并使其成为 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();
}
}
我正在尝试创建一个文件并将数据保存到其中,然后我希望能够读取它,如果可能的话,我想取出特定数据。
这是我创建和打开文件的代码。
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 值是一个字符串,如果我理解正确的话,它一次存储一位。
解析应该是一个选项吗?
我目前使用这两种方法读写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();
}
}
第二种方法会将您的对象写入内部文件,而不是外部存储,第一种方法也是读取对象。在这里,我将对象作为字符串读取,但这当然取决于您写入文件的对象类型。您可以替换 readFromInternalFile
的 return 方法并使其成为 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();
}
}