Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
在Android中向内部存储器写入和读取字符串_Android_Fileoutputstream_File Io - Fatal编程技术网

在Android中向内部存储器写入和读取字符串

在Android中向内部存储器写入和读取字符串,android,fileoutputstream,file-io,Android,Fileoutputstream,File Io,我想写一个文件,然后从中读取。在使用openFileOutput(..,..)方法时,我发现这个方法并没有定义,因为它是一个抽象方法。然后我尝试使用getBaseContext()传递上下文;警告已关闭,但我无法读取输出结果。我还尝试将上下文作为参数传递到构造函数中,但这也没有帮助。我想编写静态方法,这样我就不必每次都实例化类,静态不是原因,因为我也尝试过不使用它。下面给出了代码片段 即使在使用内部存储时,我也需要指定任何路径吗? 在内部存储器上写入文件是否需要任何权限?(我已包括在外部存储器上

我想写一个文件,然后从中读取。在使用openFileOutput(..,..)方法时,我发现这个方法并没有定义,因为它是一个抽象方法。然后我尝试使用getBaseContext()传递上下文;警告已关闭,但我无法读取输出结果。我还尝试将上下文作为参数传递到构造函数中,但这也没有帮助。我想编写静态方法,这样我就不必每次都实例化类,静态不是原因,因为我也尝试过不使用它。下面给出了代码片段

即使在使用内部存储时,我也需要指定任何路径吗? 在内部存储器上写入文件是否需要任何权限?(我已包括在外部存储器上写入的权限)

read方法中的return buffer.toString()解决了该问题。 谢谢Stefan

在内部存储器上写入文件是否需要任何权限

你可能会看到一些帖子说要使用“android.permission.WRITE\u INTERNAL\u STORAGE”


);“写入内部存储”

您想在read()中返回buffer.toString()!(顺便说一句,“String Read;”似乎在您的代码段中丢失了,但是您不应该使用大写非静态变量。)那么我该怎么做呢?代码段可能会有帮助。返回buffer.toString()作为read()方法的最后一行。并在while循环之前添加“stringread;”,以定义“Read”变量。你应该使用小写字母,例如字符串行;而((line=reader.readLine())!=null)buffer.append(line+“\n”);谢谢实际上我在我的类中将Read定义为一个静态变量。很抱歉让这个线程在很长一段时间后再次激活。我从
asset
文件夹中读取一个文件,然后使用
FileOutputStream
编写该文件。我的问题是
FileOutputStream
保存的文件的路径是什么。
public static void write (String filename,Context c,String string) throws IOException{
    try {
        FileOutputStream fos =  c.openFileOutput(filename, Context.MODE_PRIVATE);
        fos.write(string.getBytes());
        fos.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


public static String read (String filename,Context c) throws IOException{

    StringBuffer buffer = new StringBuffer();

    FileInputStream fis = c.openFileInput(filename);
    BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
    if (fis!=null) {                            
        while ((Read = reader.readLine()) != null) {    
            buffer.append(Read + "\n" );
        }               
    }       
    fis.close();
    return Read;
}