MainActivity中带有saveText的Android Java NullPointerException
在MainActivity中带有saveText的Android Java NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,在MainActivity 我是OOP和Java的noob,我不明白我做错了什么。 谢谢你的帮助 public class FileIO extends Activity{ FileInputStream fin; FileOutputStream fos; public void SaveFile(String FileName, String FileData) { try { fos = openFileOutput(Fi
MainActivity
我是OOP和Java的noob,我不明白我做错了什么。
谢谢你的帮助
public class FileIO extends Activity{
FileInputStream fin;
FileOutputStream fos;
public void SaveFile(String FileName, String FileData) {
try {
fos = openFileOutput(FileName, MODE_PRIVATE);
fos.write(FileData.getBytes());
Toast.makeText(this, "Файл "+FileName+" сохранен", Toast.LENGTH_SHORT).show();
}
catch(IOException ex) {
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
finally{
try{
if(fos!=null) {
fos.close();
}
}
catch(IOException ex){
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
public String ReadFile(String FileName) {
String text = "";
try {
fin = openFileInput(FileName);
byte[] bytes = new byte[fin.available()];
fin.read(bytes);
text = new String (bytes);
}
catch(IOException ex) {
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
finally {
try {
if (fin != null) {
fin.close();
}
} catch (IOException ex) {
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
}
return text;
}
}
public class MainActivity extends ActionBarActivity {
FileInputStream fin;
FileOutputStream fos;
FileIO FL = new FileIO();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// сохранение файла
public void saveText(View view){
try {
EditText textBox = (EditText) findViewById(R.id.save_text);
String text = textBox.getText().toString();
FL.SaveFile("content.txt", text);
}
catch(Exception ex) {
Toast.makeText(this, "Ошибка записи файла", Toast.LENGTH_SHORT).show();
Log.d("MyLog", ex.toString() + "\n" + ex.getMessage() + "\n" + ex.getCause());
}
}
// открытие файла
public void openText(View view){
TextView textView = (TextView) findViewById(R.id.open_text);
try {
fin = openFileInput("content.txt");
byte[] bytes = new byte[fin.available()];
fin.read(bytes);
String text = new String (bytes);
textView.setText(text);
}
catch(IOException ex) {
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
finally{
try{
if(fin!=null)
fin.close();
}
catch(IOException ex){
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
}
不要从活动扩展类文件IO 从更改代码
public class FileIO extends Activity{
到
创建对象时,将“MainActivity”上下文传递给构造函数中的FileIO类,并使用它显示Toast消息
FileIO fileIo= new FileIO(MainActivity.this);
希望这对您的无stacktrace,无帮助。^或给我们日志…nullpointerexception表示您在xml中做了错误的事情。对saveText和openText方法的调用在哪里?为什么FileIO扩展活动?这很有帮助。非常感谢。我真的忘了上下文!
FileIO fileIo= new FileIO(MainActivity.this);