将字符串写入文件

jas*_*son 22 android streamwriter

我想写一些文件.我找到了这段代码:

private void writeToFile(String data) {
    try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("config.txt", Context.MODE_PRIVATE));
        outputStreamWriter.write(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    } 
}
Run Code Online (Sandbox Code Playgroud)

代码似乎非常合乎逻辑,但我在手机中找不到config.txt文件.
如何检索包含字符串的文件?

Fan*_*mas 40

如果没有指定路径,您的文件将保存在您的应用空间中(/data/data/your.app.name/).

因此,您最好将文件保存到外部存储器(不一定是SD卡,它可以是默认存储器).

您可能希望通过阅读官方文档来深入研究这一主题

在综合中:

将此权限添加到您的清单中:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

它包含READ权限,因此无需另外指定.

将文件保存在您指定的位置(这取自我的活鳕鱼,所以我确定它有效):

public void writeToFile(String data)
{
    // Get the directory for the user's public pictures directory.
    final File path =
        Environment.getExternalStoragePublicDirectory
        (
            //Environment.DIRECTORY_PICTURES
            Environment.DIRECTORY_DCIM + "/YourFolder/"
        );

    // Make sure the path directory exists.
    if(!path.exists())
    {
        // Make it, if it doesn't exit
        path.mkdirs();
    }

    final File file = new File(path, "config.txt");

    // Save your stream, don't forget to flush() it before closing it.

    try
    {
        file.createNewFile();
        FileOutputStream fOut = new FileOutputStream(file);
        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
        myOutWriter.append(data);

        myOutWriter.close();

        fOut.flush();
        fOut.close();
    }
    catch (IOException e)
    {
        Log.e("Exception", "File write failed: " + e.toString());
    } 
}
Run Code Online (Sandbox Code Playgroud)

[编辑]确定尝试这样(不同的路径 - 外部存储上的文件夹):

    String path =
        Environment.getExternalStorageDirectory() + File.separator  + "yourFolder";
    // Create the folder.
    File folder = new File(path);
    folder.mkdirs();

    // Create the file.
    File file = new File(folder, "config.txt");
Run Code Online (Sandbox Code Playgroud)


小智 5

编写一个简化的文本文件:

private void writeToFile(String content) {
    try {
        File file = new File(Environment.getExternalStorageDirectory() + "/test.txt");

        if (!file.exists()) {
            file.createNewFile();
        }
        FileWriter writer = new FileWriter(file);
        writer.append(content);
        writer.flush();
        writer.close();
    } catch (IOException e) {
    }
}
Run Code Online (Sandbox Code Playgroud)