Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中将数据附加到现有文件中_Java_Android_File - Fatal编程技术网

Java 如何在Android中将数据附加到现有文件中

Java 如何在Android中将数据附加到现有文件中,java,android,file,Java,Android,File,您好,我有一个创建文件并向其中写入数据的方法。现在我想将此方法调用到另一个类以将数据附加到该文件。但当我运行应用程序时,它会向我提供以下错误数据。xml:open failed:EROFS(只读文件系统) 这是我的方法,也是我在第一节课上如何称呼它的 String s1 = "hello"; String s2 = "world"; String sname = "data.xml"; saveDataToFile(s1,s2,sname) public void saveDataT

您好,我有一个创建文件并向其中写入数据的方法。现在我想将此方法调用到另一个类以将数据附加到该文件。但当我运行应用程序时,它会向我提供以下错误数据。xml:open failed:EROFS(只读文件系统)

这是我的方法,也是我在第一节课上如何称呼它的

 String s1 = "hello";
 String s2 = "world";
 String sname = "data.xml";
 saveDataToFile(s1,s2,sname)


public void saveDataToFile(String data1, String data2 ,String fileName) {

   Log.d("Checks", "Trying to save data");



   try {
        // Set up the file directory
        String filePath = Environment.getExternalStorageDirectory().toString() + "/Data Folder";
        File fileDirectory = new File(filePath);
        fileDirectory.mkdirs();
        Log.d("Checks", "Directory created");

       // Set up the file itself
        File textFile = new File(fileDirectory, fileName);
        textFile.createNewFile();
        Log.d("Checks", "File created");

       // Write to the file
        FileOutputStream fileOutputStream = new FileOutputStream(textFile);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
        outputStreamWriter.append(data1);
        outputStreamWriter.append(data2);
        outputStreamWriter.close();
        fileOutputStream.close();

       Toast.makeText(getApplicationContext(), "Done writing to SD card", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
    } }
当我再次调用它时,我跳过设置目录和文件本身,就像这样,我从第二个类调用它,就像这样

 String s1 = "hello again";
 String s2 = "world again";
 String sname = "data.xml";
 saveDataToFile(s1,s2,sname)

public void saveDataToFile(String data1, String data2 ,String fileName) {

   Log.d("Checks", "Trying to save data");



   try {


       // Write to the file
        FileOutputStream fileOutputStream = new FileOutputStream(textFile);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
        outputStreamWriter.append(data1);
        outputStreamWriter.append(data2);
        outputStreamWriter.close();
        fileOutputStream.close();

       Toast.makeText(getApplicationContext(), "Done writing to SD card", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
    }
   }

检查清单中外部存储的读写权限…我有这些权限