5

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

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

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;
}
4

2 回答 2

2

read 方法中的 return buffer.toString() 解决了这个问题。谢谢斯特凡。

于 2012-10-03T06:49:59.593 回答
1

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

“您不需要任何权限将文件保存在内部存储上。您的应用程序始终有权读取和写入其内部存储目录中的文件。”

您可能会看到一些说明使用的帖子:“android.permission.WRITE_INTERNAL_STORAGE”

没有这样的许可;“WRITE_INTERNAL_STORAGE”

于 2013-07-29T04:04:35.937 回答