mis*_*kin 12 string android file
我看到很多例子如何写这样的String对象:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud)
但不是如何从内部应用程序文件中读取它们.大多数示例假设特定的字符串长度来计算字节缓冲区,但我不知道长度是多少.有一个简单的方法吗?我的应用程序最多可以为文件写入50-100个字符串
Ale*_*min 14
以这种方式编写字符串不会在文件中放置任何类型的分隔符.你不知道一个字符串的结束和下一个字符串的开始.这就是为什么你必须在阅读时指定字符串的长度.
您可以使用DataOutputStream.writeUTF()而DataInputStream.readUTF()不是这些方法将字符串的长度放在文件中并自动读回正确数量的字符.
在Android上下文中,您可以执行以下操作:
try {
// Write 20 Strings
DataOutputStream out =
new DataOutputStream(openFileOutput(FILENAME, Context.MODE_PRIVATE));
for (int i=0; i<20; i++) {
out.writeUTF(Integer.toString(i));
}
out.close();
// Read them back
DataInputStream in = new DataInputStream(openFileInput(FILENAME));
try {
for (;;) {
Log.i("Data Input Sample", in.readUTF());
}
} catch (EOFException e) {
Log.i("Data Input Sample", "End of file reached");
}
in.close();
} catch (IOException e) {
Log.i("Data Input Sample", "I/O Error");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23174 次 |
| 最近记录: |