Java 读取/写入数据库错误
我在android应用程序上进行读写操作。在onCreate上,将读取文件并将其显示到EditText,并且可以对其进行编辑。当按下save键时,数据将写入到onCreate上读取的同一文件中。但我犯了个错误。目录中没有这样的文件。我不明白。当按下保存按钮时,我正在创建文件。有什么想法吗 Java代码:Java 读取/写入数据库错误,java,android,file,Java,Android,File,我在android应用程序上进行读写操作。在onCreate上,将读取文件并将其显示到EditText,并且可以对其进行编辑。当按下save键时,数据将写入到onCreate上读取的同一文件中。但我犯了个错误。目录中没有这样的文件。我不明白。当按下保存按钮时,我正在创建文件。有什么想法吗 Java代码: EditText Name; EditText Age; EditText Height; EditText Weight; EditText MedHistory; @Overri
EditText Name;
EditText Age;
EditText Height;
EditText Weight;
EditText MedHistory;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_medicalhistory);
Name = (EditText) findViewById(R.id.medhistName);
Age = (EditText) findViewById(R.id.medhistAge);
Height = (EditText) findViewById(R.id.medhistHeight);
Weight = (EditText) findViewById(R.id.medhistWeight);
MedHistory = (EditText) findViewById(R.id.MedHist);
int i = 0;
String MedHistData[] = new String[5];
try {
File myFile = new File("/data/data/Project.Package.Structure/files/MedicalHistory.txt");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
String aDataRow = "";
while ((aDataRow = myReader.readLine()) != null)
{
MedHistData[i] = aDataRow;
i++;
}
i = 0;
Name.setText(MedHistData[0]);
Age.setText(MedHistData[1]);
Height.setText(MedHistData[2]);
Weight.setText(MedHistData[3]);
MedHistory.setText(MedHistData[4]);
myReader.close();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
Button Save = (Button) findViewById(R.id.SaveBtn);
Save.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
File myFile = new File("/data/data/Project.Package.Structure/files/MedicalHistory.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(Name.getText() + "\n");
myOutWriter.append(Age.getText() + "\n");
myOutWriter.append(Height.getText() + "\n");
myOutWriter.append(Weight.getText() + "\n");
myOutWriter.append(MedHistory.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
"Medical History Saved'",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
}
我猜:您没有对该文件的写入权限。 您只能访问特定文件夹以在android中进行书写。 看看
他们有一个关于如何编写文本文件的简单示例。您应该使用openFileInput()方法打开文件进行读取,使用openFileOutput()进行写入。这些函数分别返回FileInputStream和FileOutputStream。我看过一些文章使用这种方法,并使它们工作起来。我只是不知道我的问题,你能发布stacktrace的相关部分并指出行号、异常状态的原因吗?