Write a string to a file

后端 未结 4 1901

I want to write something to a file. I found this code:

private void writeToFile(String data) {
    try {
        OutputStreamWriter outputStreamWriter = new Ou         


        
4条回答
  •  盖世英雄少女心
    2021-01-31 18:49

    Not having specified a path, your file will be saved in your app space (/data/data/your.app.name/).

    Therefore, you better save your file onto an external storage (which is not necessarily the SD card, it can be the default storage).

    You might want to dig into the subject, by reading the official docs

    In synthesis:

    Add this permission to your Manifest:

        
    

    It includes the READ permission, so no need to specify it too.

    Save the file in a location you specify (this is taken from my live cod, so I'm sure it works):

    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());
        } 
    }
    

    [EDIT] OK Try like this (different path - a folder on the external storage):

        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");
    

提交回复
热议问题