gpt4 book ai didi

java - openFileInput() 和/或 openFileOutput() i/o 流静默失败

转载 作者:行者123 更新时间:2023-11-30 11:29:34 28 4
gpt4 key购买 nike

我一直在玩弄 android 平台,玩弄不同的数据存储方式。现在我正在使用 Context 方法 openFileInput()openFileOutput()

正如这两种方法的文档告诉我的那样,我创建了一个名为 default 的文件。下面是一些示例代码(这些示例是我所做的副本,我知道文件名和变量的命名方式不同):

打开文件输出()...

    Context cont = /* defined somewhere */;
String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = cont.openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.flush();
fos.close();

打开文件输入()...

    FileInputStream fis = cont.openFileInput("hello_file");

byte[] buffer = new byte[(int) fis.getChannel().size()];
fis.read(buffer);
String str= "";
for(byte b:buffer) str+=(char)b;

fis.close();

在这些代码 fragment 中,“hello world”应该写入文件“hello_file”,并且应该是 str 中的内容。我的代码遇到的问题是,无论我向文件写入什么内容,FileInputReader 都不会获取任何信息。

我滚动浏览了 android 文档中列出的权限,但我找不到任何关于内部存储的信息(而且我很确定你不需要这样的权限)。

最重要的是,我不明白为什么 FileInputWriter 没有写任何东西或者为什么 FileInputReader 没有读任何东西(我不知道它是)当代码运行良好且没有错误时。

最佳答案

我回信作为答复,因为评论太多了。我已经尝试了您的代码 - 嗯,它运行良好。

我唯一能想到的是,您的设备有问题。在这种情况下,我希望有一些异常(exception)......
您仍然可以做的是复制我的代码并检查日志。看看它是否有效,或者您是否会遇到一些异常。然后检查你的设备有多少内存(是真实的还是模拟的?)
如果它被模拟,那么即使是这么小的文件也可能太小了。

这是我的代码,我将其放入 onResume()

    String FILENAME = "hello_file";
String string = "hello world!";

try {
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.flush();
fos.close();
} catch (IOException e) {
Log.e("STACKOVERFLOW", e.getMessage(), e);
}

try {
FileInputStream fis = openFileInput("hello_file");
byte[] buffer = new byte[(int) fis.getChannel().size()];
fis.read(buffer);
String str= "";
for(byte b:buffer) str+=(char)b;
fis.close();
Log.i("STACKOVERFLOW", String.format("GOT: [%s]", str));
} catch (IOException e) {
Log.e("STACKOVERFLOW", e.getMessage(), e);
}

输出:

08-16 08:31:38.748: I/STACKOVERFLOW(915): GOT: [hello world!]

是否有这样一类:“有帮助,但不能解决问题”?

关于java - openFileInput() 和/或 openFileOutput() i/o 流静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266223/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com