[英]Fatal Exception main at onclick
我得到E / AndroidRuntime:FATAL EXCEPTION:主要在com.test.megatest.Main4Activity $ 1.onClick(Main4Activity.java:37)。
我已經在這個論壇上閱讀了大量的帖子,但我無法弄清楚我失蹤了什么,
這是Main4Activity.java:
package com.test.megatest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main4Activity extends AppCompatActivity {
EditText inputText;
TextView response;
Button saveButton, readButton;
private String filename = "SampleFile.txt";
private String filepath ="MyFileStorage";
File myExternalFile;
String myData ="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
inputText = (EditText) findViewById(R.id.myInputText);
response = (TextView) findViewById(R.id.response);
saveButton =(Button) findViewById(R.id.saveExternalStorage);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
FileOutputStream fos = new FileOutputStream(myExternalFile); //LINE 37
fos.write(inputText.getText().toString().getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
inputText.setText("");
response.setText("SampleFile.txt saved to somewhere..");
}
});
}
}
這里有人能指出我正確的方向嗎? :)
您嘗試打開輸出流的文件為NULL。 您將其聲明為成員但從未初始化它。
您的Main4Activity有一個“文件”變量:
File myExternalFile;
但是沒有為該變量分配任何對象/值您正試圖在其中使用它:
FileOutputStream fos = new FileOutputStream(myExternalFile);
顯然你會得到一個例外:P
您應該使用java.io.File中指定的4個公共構造函數中的任何一個初始化“myExternalFile”(具體取決於您的用例)。
例如:
// If you need a "Persistent" file in private directory of your application
//
myExternalFile = new File(this.getFilesDir() ,"name_of_your_file.txt");
//
// or
// If you need a "Cache" file
myExternalFile = new File(this.getCacheDir() ,"name_of_your_file.txt");
Android文件系統上面文件的位置是:
#Persistent : /data/data/com.test.megatest/files 或
(任何文件管理器應用程序)/Android/data/com.test.megatest/files
#Cache : /data/data/com.test.megatest/cache 或
(任何文件管理器應用程序)/Android/data/com.test.megatest/files
參考:
1) java.io.FileOutputStream - > FileOutputStream(文件文件)公共構造函數
" “創建一個文件輸出流以寫入 ”
將文件初始化為
File myExternalFile=new File("SampleFile.txt");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.