文本文件:仅添加一行文本?

时间:2014-08-18 19:40:37

标签: java text-files

在我的应用程序中,我添加了允许我将详细信息保存到txt file.

的功能

它工作正常,但我尝试在文件的顶部处仅一次向txt文件添加标题。

我得到的问题是它是在每一行产生的,而不仅仅是一次。

如何更改以下方法来解决此问题?

注意:header是活动中先前声明的字符串。

写入文件方法:

public void writeToFileEEGPower(String data){

            boolean isHeader=true;


            Time t= new Time();
            t.setToNow();
            int timeFileMinute= t.minute;
            int timeFileDate= t.yearDay;
            int timeFileYear= t.year;

            //creating file name
            String fileName= "Maths-" +timeFileMinute + timeFileDate + timeFileYear + android.os.Build.SERIAL;

            //creating the file where the contents will be written to
            File file= new File(dir, fileName + ".txt");

            FileOutputStream os;

            try{

                boolean append= true;

                os= new FileOutputStream(file, append);

                String writeMe =data + "\n";

                if(isHeader){

                    os.write(header.getBytes());
                    isHeader=false;
                }


                os.write(writeMe.getBytes());

                os.close();
            } catch(FileNotFoundException e){

                e.printStackTrace();
            }catch(IOException e){

                e.printStackTrace();
            }

        }

感兴趣的特定代码部分:

if(isHeader){

                        os.write(header.getBytes());
                        isHeader=false;
                    }

2 个答案:

答案 0 :(得分:2)

public void writeToFileEEGPower(String data, boolean isHeader){
    ....
}

传入" true"标题和传入" false"在第一个之后的任何事情?

答案 1 :(得分:-1)

我能够按照评论和其他答案中的建议来解决问题。

基本上我在Activity的onCreate()方法中声明了布尔值:isHeader=true;,并从writeToFileEEGPower()方法中删除了它的声明。