我正在使用Eclipse进行制作Android应用程序的大学项目 我有一件事有问题:
我创建了一个名为TextFileHandler
的类。
这个想法是应用程序实例化TextFileHandler
并使用这些方法
使用get方法简单地读取和编写应用程序中的文本文件
返回一个字符串值并设置将新值写入文本文件的方法。
实例化此类时,构造函数会创建一个文本文件。 这些方法应该访问创建的文本文件并读取和写入它们 但问题是,一旦它创建了文本文件,它似乎无法访问它们 而且应用程序崩溃了。
我已经包含了构造函数,然后直接在方法getMeds()
之后
每次都会崩溃。我不确定为什么它找不到文本文件。
任何帮助将不胜感激。
构造
public TextFileHandler(Context ctx){
this.context = ctx;
//create the medicine text file
String medtext = "1#Med*2#Med*3#Med*4#Med*5#Med*";
try {
File file = new File("Medicine.txt");
//if the file doesn't already exist then create it
//this is to make sure the app saves state
if(!file.exists()){
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output.write(medtext);
output.close();
}
} catch ( IOException e ) {
e.printStackTrace();
}
String remtext = "1a#000000*1b#000000*1c#000000*1d#000000*1e#000000*";
remtext += "2a#000000*2b#000000*2c#000000*2d#000000*2e#000000*";
remtext += "3a#000000*3b#000000*3c#000000*3d#000000*3e#000000*";
remtext += "4a#000000*4b#000000*4c#000000*4d#000000*4e#000000*";
remtext += "5a#000000*5b#000000*5c#000000*5d#000000*5e#000000*";
try {
File file = new File("Reminder.txt");
//if the file doesn't already exist then create it
//this is to make sure the app saves state
if(!file.exists()){
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output.write(remtext);
output.close();
}
} catch ( IOException e ) {
e.printStackTrace();
}
}
获取方法:
public String getMeds() throws IOException{
FileInputStream in = openFileInput("Medicine.txt");
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
String ret = sb.toString();
return ret;
}
答案 0 :(得分:0)
使用ctx.openFileOutput("Medicine.txt", MODE_PRIVATE)
私下创建您的文件(仅由您的应用程序读取)或公开使用new File(Environment.getExternalStorageDirectory(), "Medicine.txt")
。
要阅读私人文件,请使用Context.openFileInput(String name)
。