Java 将字符串写入.txt文件,FileOutputStream未按预期工作
我有一个应用程序,我想创建一个文本文件并在其中写入内容。我使用显式意图选择文件夹并创建文件,其中mimeType=text/plainJava 将字符串写入.txt文件,FileOutputStream未按预期工作,java,android,fileoutputstream,Java,Android,Fileoutputstream,我有一个应用程序,我想创建一个文本文件并在其中写入内容。我使用显式意图选择文件夹并创建文件,其中mimeType=text/plain private void createFile(String mimeType, String fileName) { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); inte
private void createFile(String mimeType, String fileName) {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_TITLE, fileName);
startActivityForResult(intent, WRITE_REQUEST_CODE);
}
创建文件后,我使用onActivityResult对其进行写入
if (requestCode == WRITE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = resultData.getData();
String path = uri.getPath();
File file = new File(path);
String filename = file.getName();
try {
verifyStoragePermissions(this); //method to access storage
FileOutputStream outputStream = openFileOutput(filename,MODE_PRIVATE);
outputStream.write("Message to write".getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我的舱单上也有许可证
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我没有收到错误,但我的文件中没有写入任何内容。有人能帮忙吗
ACTION\u CREATE\u DOCUMENT
为您提供一个Uri
,用于向其写入内容AUri
不是文件openFileOutput()
用于内部存储,而不是外部存储,因此权限是无意义的openFileOutput()
与ACTION\u CREATE\u DOCUMENT
getBytes()
if (requestCode == WRITE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = resultData.getData();
try {
OutputStream os=getContentResolver().openOutputStream(uri);
PrintStream ps=new PrintStream(os);
ps.print("Message to write");
ps.flush();
ps.close();
} catch (Exception e) {
Log.e("Some identifying string", "Exception writing to "+uri.toString(), e);
}
}
ACTION\u CREATE\u DOCUMENT
为您提供一个Uri
,用于向其写入内容AUri
不是文件openFileOutput()
用于内部存储,而不是外部存储,因此权限是无意义的openFileOutput()
与ACTION\u CREATE\u DOCUMENT
getBytes()
if (requestCode == WRITE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = resultData.getData();
try {
OutputStream os=getContentResolver().openOutputStream(uri);
PrintStream ps=new PrintStream(os);
ps.print("Message to write");
ps.flush();
ps.close();
} catch (Exception e) {
Log.e("Some identifying string", "Exception writing to "+uri.toString(), e);
}
}
要将其保存为.xml文件,我必须更改什么?我已经更改了mimeType,但没有更改work@IoannaDln:对不起,我不知道您所说的“将此另存为.xml文件”是什么意思。如果您询问如何向用户询问XML文件的位置,我希望MIME类型的
text/XML
会有所帮助,虽然不要求用户使用任何特定的文件扩展名。我不想创建一个.txt文件,而是想创建一个.xml文件,但我得到的是没有数据的空文件written@IoannaDln:我建议您提出一个单独的堆栈溢出问题,在该问题中,您提供一个显示您正在尝试的内容并详细解释,如何确定“获取空文件而不写入数据”。要将其保存为.xml文件,我需要做哪些更改?我已经更改了mimeType,但没有更改work@IoannaDln:对不起,我不知道您所说的“将此另存为.xml文件”是什么意思。如果您询问如何向用户询问XML文件的位置,我希望MIME类型的text/XML
会有所帮助,虽然不要求用户使用任何特定的文件扩展名。我不想创建一个.txt文件,而是想创建一个.xml文件,但我得到的是没有数据的空文件written@IoannaDln:我建议您提出一个单独的堆栈溢出问题,在该问题中,您提供一个显示您正在尝试的内容并详细解释,您如何确定“获取空文件而不写入数据”。