如何在Java中创建和读取文本文件

时间:2014-08-20 20:59:28

标签: java android eclipse

我正在使用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;
}

1 个答案:

答案 0 :(得分:0)

使用ctx.openFileOutput("Medicine.txt", MODE_PRIVATE)私下创建您的文件(仅由您的应用程序读取)或公开使用new File(Environment.getExternalStorageDirectory(), "Medicine.txt")

要阅读私人文件,请使用Context.openFileInput(String name)