gpt4 book ai didi

java - Android:如何将文件写入内部存储

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:32 24 4
gpt4 key购买 nike

我正在开发一个简单的 android 应用程序,我需要在内部存储设备中写入一个文本文件。我知道关于这件事有很多问题(和答案),但我真的不明白我在做错什么。

这是我在 Activity 中用来编写文件的代码 fragment :

public void writeAFile(){
String fileName = "myFile.txt";
String textToWrite = "This is some text!";
FileOutputStream outputStream;

try {
outputStream = openFileOutput(fileName , Context.MODE_PRIVATE);
outputStream.write(textToWrite.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}

我真的不明白我犯了什么错误。另外我试过this在我的 Android Studio 模拟器和我的手机上进行项目,以便了解我哪里做错了,但即使使用该项目,也没有在手机或模拟器上写入任何文件。

编辑:我知道没有文件写入我的内部存储,因为我尝试在写入文件后使用以下代码读取文件的内容:

public void ReadBtn(View v) {
//reading text from file
try {
FileInputStream fileIn=openFileInput("myFile.txt");
InputStreamReader InputRead= new InputStreamReader(fileIn);

char[] inputBuffer= new char[READ_BLOCK_SIZE];
String s="";
int charRead;

while ((charRead=InputRead.read(inputBuffer))>0) {
String readstring=String.copyValueOf(inputBuffer,0,charRead);
s +=readstring;
}
InputRead.close();
textmsg.setText(s);
} catch (Exception e) {
e.printStackTrace();
}
}

什么都没有显示。

最佳答案

使用以下代码将文件写入内部存储:

public void writeFileOnInternalStorage(Context mcoContext, String sFileName, String sBody){      
File dir = new File(mcoContext.getFilesDir(), "mydir");
if(!dir.exists()){
dir.mkdir();
}

try {
File gpxfile = new File(dir, sFileName);
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.flush();
writer.close();
} catch (Exception e){
e.printStackTrace();
}
}

Starting in API 19 ,您必须请求写入存储的权限。

您可以通过在AndroidManifest.xml中添加以下代码来添加读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

您可以提示用户使用读/写权限:

requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE}, 1);

然后您可以在 onRequestPermissionsResult() 中从它调用的 Activity 中处理权限请求的结果。

关于java - Android:如何将文件写入内部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587187/

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