无法在Android中创建文件并写入它。未处理的异常java.io.FileNotFoundException

时间:2015-11-20 03:33:21

标签: java android

public static void main(String[] args) {
    String string = "hello world!";
    File file = new File("test.txt");
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(string.getBytes());
    fos.close();
}

我真的不知道出了什么问题。我在新的FileOutpuStream(文件),fos.write(...)和fos.close()上遇到错误。

我为这个简单的问题道歉,因为我是Java和Android的新手。

2 个答案:

答案 0 :(得分:2)

用于保存文件:

public void writeToFile(String data) {
    try {
        FileOutputStream fou = openFileOutput("data.txt", MODE_APPEND);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fou);
        outputStreamWriter.write(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }
}

用于加载文件:

public String readFromFile() {

    String ret = "";

    try {
        InputStream inputStream = openFileInput("data.txt");

        if ( inputStream != null ) {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String receiveString = "";
            StringBuilder stringBuilder = new StringBuilder();

            while ( (receiveString = bufferedReader.readLine()) != null ) {
                stringBuilder.append(receiveString);
            }

            inputStream.close();
            ret = stringBuilder.toString();
        }

    }
    catch (FileNotFoundException e) {
        Log.e("login activity", "File not found: " + e.toString());
    } catch (IOException e) {
        Log.e("login activity", "Can not read file: " + e.toString());
    }

    return ret;
}

答案 1 :(得分:0)

请添加代码来处理IOException(不仅是FileNotFoundException)。抓住它或扔掉它。下面是使用throws IOException抛出它的示例(我已经测试了代码并且它按预期运行):

public static void main(String[] args) throws IOException {
    String string = "hello world!";
    File file = new File("test.txt");
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(string.getBytes());
    fos.close();
}