2017-04-03 67 views
0

我的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

回答

2

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

它位于Android文件系统的位置。因此,请将您的txt文件写入内部或外部存储器。

0

资产文件夹是只读的,以及其内容。如果您希望修改和保存资产的任何修改,请考虑使用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)); 
相关问题