基本上我有两个问题。我使用以下代码来读写z文本文件。
File myFile = new File("/sdcard/mysdfile.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append("my text here");
myOutWriter.close();
每次我想要OPEN_OR_CREATE时创建一个新文件(如果文件已存在则不创建新文件)
我的第二个问题是如何更改路径“/sdcard/mysdfile.txt”我希望此文件存储在我的sdcard中 - > subFolder1 - > SubFolder2
Thnaks
答案 0 :(得分:0)
替换
FileOutputStream fOut = new FileOutputStream(myFile);
与
FileOutputStream fOut = new FileOutputStream(myFile, true); //true means append mode.
除此之外,我有一个建议。
永远不要在代码中硬编码/sdcard
,而是考虑写作。
File myFile = new File(Environment.getExternalStorageDirectory(),"mysdfile.txt");
答案 1 :(得分:0)
尝试使用我的解决方案写入文本结尾文件
private void writeFile (String str){
try {
File f = new File(Environment.getExternalStorageDirectory().toString(),"tasklist.txt");
FileWriter fw = new FileWriter(f, true);
fw.write(str+"\n");
fw.flush();
fw.close();
} catch (Exception e) {
}
}
*文件(Environment.getExternalStorageDirectory()的toString()+ “您/ PTH /这里”, “tasklist.txt”);
答案 2 :(得分:0)
请勿使用硬编码的/sdcard
或/mnt/sdcard
,否则您的应用会因设备在该存储的位置或挂载点不同而失败。要获得正确的位置,请使用
Environment.getExternalStorageDirectory();
请参阅docs here。
要将内容附加到现有文件,请使用new FileOutputStream(myFile, true);
而不只是new FileOutputStream(myFile);
- 请参阅docs on that constructor here。
至于
如何更改路径“/sdcard/mysdfile.txt”
除了如上所述摆脱/sdcard
之外,只需在路径中添加子文件夹:MyFolder1/MyFolder2/mysdfile.txt
。请注意这些文件夹必须存在或路径无效。您始终可以通过调用myFile.mkdirs()
来创建它。
答案 3 :(得分:0)
File dir = Environment.getExternalStorageDirectory();
File f = new File(dir+"/subFolder1/",xyz.txt); <-- HOW TO USE SUB FOLDER
if(file.exists())
{
// code to APPEND
}
else
{
// code to write new one
}
答案 4 :(得分:0)
1&GT; OPEN_OR_CREATE 你可以尝试或者可以用@ Vipul的建议替换MODE_APPEND
FileOutputStream fOut = openFileOutput(your_path_file, MODE_APPEND);
//it means if the file is exist the content you want write will append into it.
2 - ;存储在我的SD卡中 - &gt; subFolder1 - &gt; SubFolder2
您可以使用Environment.getExternalStorageDirectory()。getAbsolutePath()来获取SDCard的完整文件路径。然后连接字符串以获取所需的文件路径。例如:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
File f = new File(baseDir + File.separator + subfolder1 + File.separator + subfoler2, fileName);
答案 5 :(得分:0)
在Java 7中,我们可以这样做:
Path path = Paths.get("/sdcard/mysdfile.txt");
BufferedWriter wrt = Files.newBufferedWriter(path, StandardCharsets.UTF_8, StandardOpenOption.APPEND);