无法在内部存储中创建文件

时间:2014-08-20 19:40:42

标签: java android file

追逐Google Android Trainings我尝试在内部存储中创建文件并修改它。

但是有一个未知问题,我无法调试它。

下面我复制了我的mainActivity类,其中包含我为pupose编写的所有代码,但我真的无法调试它!我只能在TextView !!中看到任何内容!

公共类MyActivity扩展了Activity {

final static String fileName = "myFile.txt";
File file;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initializeFile();
    TextView tv = (TextView) findViewById(R.id.text_view);
    try {
        tv.setText(readFile());
    } catch (IOException e) {
        e.printStackTrace();
    }
    setContentView(R.layout.main);
}


public void initializeFile(){
    try {
        file = new File(getFilesDir() , fileName);
        if(!file.exists()){
            Log.d("BUG","No Files !!");
        }
        FileOutputStream out = openFileOutput(fileName , MODE_PRIVATE);
        out.write("My text".getBytes());
        out.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

public String readFile() throws IOException {
    String s = "";
    Scanner scan = new Scanner(file);
    if (!file.exists())
    {
        Log.d("BUG","NO File(reading)");
    }
    while(scan.hasNext()){
        s += scan.nextLine();
    }
    return s;
}

1 个答案:

答案 0 :(得分:0)

在尝试获取TextView tv之前,您应该致电setContentView(R.layout.main)。在其他地方有NPE,因为你的主视图没有膨胀,并且没有任何ID为R.id.text_view的视图。其他一切都很好。