gpt4 book ai didi

java - 从 fragment 中的内部存储读取和写入文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:05 25 4
gpt4 key购买 nike

我的应用有一个 SplashScreen 和一个 MainActivity。在 MainActivity 中,FrameLayout 被 fragment 替换。但这只是一个基本的理解,我不认为我的问题真的需要它。

在我的 SplashScreen 中,我正在检查内部存储中是否存在文件。如果是这样,它就会被读出。如果没有,它会从互联网上下载。到目前为止,一切都很好。现在,当用户在 MainActivity 中时,他有不同的选择。根据该选项,将打开一个 fragment 并显示数据。这个数据不一样。所以现在我想在 SplashScreen 中做同样的事情。检查文件是否存在。如果是,请读出,否则从 Internet 下载。我遇到的问题是,似乎无法通过 fragment 进行读写。对吗?

该 fragment 为 AsyncTask 加注星标,应该在其中进行下载。

这是我在 fragment 中写入文件的代码

private void writeToFile(String data, String filename) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput( filename, MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}

但我遇到的问题是 MODE_PRIVATE - 我遇到的错误是 MODE_PRIVATE cannot be resolved to a variable 。如何在 fragment 中将模式设置为私有(private)?

然后,当我想读取一个文件时,它会像那样在 SplashScreen 中工作

inputStream = openFileInput ( 文件路径 )

但是在 fragment 中我得到了错误

未为类型 WeekFragment.MainAsyncTask 定义方法 openFileInput(String)

我究竟如何在 fragment 中写入和读取文件?

最佳答案

MODE_PRIVATEContext 的常量类(class)。因此,您可以使用 Context.MODE_PRIVATE 从任何地方访问它。

所以在你的代码中使用 like

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(getActivity().openFileOutput( filename, Context.MODE_PRIVATE));

关于java - 从 fragment 中的内部存储读取和写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090900/

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