将字符串写入资产文件夹中的文件

Write a String to a File in the Assets Folder

我的 Assets 文件夹中有一个 .txt file。 我尝试使用 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(getAssets().open("---.txt")));

我收到一个错误,强调 (getAssets().open("---.txt")));

OutputStreamWriter(java.io.OutputStream) in OutputStreamWriter cannot be applied to (java.io.InputStream)

我不知道如何写入这个文件,我需要帮助。如果我知道如何删除该文件中已有的所有内容并写入空白文件,那也很好……(抱歉不清楚)。

我知道我可以在 PC 上使用 PrintWriter 执行此操作,但我现在正在学习 Android

您不能将任何文件写入资产或任何原始目录。

它将位于 Android 文件系统中的什么位置。因此,将您的 txt 文件写入内部或外部存储空间。

资产文件夹及其内容都是只读的。如果您希望修改并保存资产中的任何修改,请考虑使用 Context.openFileOutput() 在设备存储中存储一个副本。这是一个没有异常处理的例子:

// copy the asset to storage

InputStream assetIs = getAssets().open(filename);
OutputStream copyOs = openFileOutput(filename, MODE_PRIVATE);

byte[] buffer = new byte[4096];
int bytesRead;

while ((bytesRead = assetIs.read(buffer)) != -1) {
    copyOs.write(buffer, 0, bytesRead);
}

assetIs.close();
copyOs.close();

// now you can open and modify the copy

copyOs = openFileOutput(filename, MODE_APPEND); 

BufferedWriter writer =
        new BufferedWriter(
                new OutputStreamWriter(copyOs));