当前位置: 首页 > 面试题库 >

将字符串写入文本文件

慕容聪
2023-03-14
问题内容

我将日志保存到sdcard上的.txt文件中,但是一旦保存了两行,它就会覆盖它并重新开始?

这是我的代码:

public static String getTimestamp() {
    try {

        SimpleDateFormat dateFormat = new SimpleDateFormat("MMMdd HH:mm:ss", Locale.getDefault());
        String currentTimeStamp = dateFormat.format(new Date()); // Find todays date

        return currentTimeStamp;
    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }
}

public static void writeToLog(Context context, String string) {
    String text = getTimestamp() + " " + string;
    // ONLY SAVES TWO LINES
    try {
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(logFile, true)));
        out.println(text);
        out.close();
    } catch (IOException e) {
        Log.d(Constants.APP_NAME, e.toString());
    }
}

在恢复中挂载/ data后,/ sdcard和/ data / media /
0中的日志文件会显示完整的日志历史记录,但在设备开机时不会显示完整的日志历史记录


问题答案:

这是完成的方式。以下示例代码在单击提交按钮后将详细信息保存到文件中:

Submit = (Button) findViewById(R.id.btnSubmit); //Instantiates the button in the onCreate method 
        Submit.setOnClickListener(new OnClickListener(){  //Called when the user clicks on the Submit button

            @Override
            public void onClick(View v) {
            // In this case the text to be written is the selected text in a radio button from radioGroup
                int Selection = AttendanceGroup.getCheckedRadioButtonId();

                // find the radiobutton by returned id 
                RadioButton radiobutton = (RadioButton) findViewById(Selection);

                    // write on SD card file data in the text box
                    try {

                        //gets the current date since this is an attendance app.
                        Calendar c = Calendar.getInstance();
                        //Formats the date a desired
                        SimpleDateFormat date = new SimpleDateFormat("dd-MM-yy");
                        String getDate = date.format(c.getTime());

                        //writes the text to the file named attendance.txt which is created in the phone.
                        File myFile = new File("/sdcard/Albanapp/Attendance.txt");
                        FileWriter fOut = new FileWriter(myFile, true);
                        fOut.append(getDate + "\t" + getSelectedName.getSelectedItem().toString() + "\t" + radiobutton.getText().toString() + "\n");
                        fOut.flush();
                        fOut.close();

                        //Returns a statment to the user showing if the editing of the attendance.txt file was successful or not.  
                        Toast.makeText(getBaseContext(),"Status Saved", Toast.LENGTH_SHORT).show();
                    } catch (Exception e) {
                        Toast.makeText(getBaseContext(), "Attendance cannot be saved",
                                Toast.LENGTH_SHORT).show();
                    }
            }
        });

希望这可以帮助 :)



 类似资料:
  • 问题内容: 我认为能够将文本文件读入和写出字符串数组的能力是相当普遍的要求。从一种语言开始消除最初访问数据库的需求时,它也非常有用。Golang中是否存在? 例如 和 我宁愿使用现有的而不是重复的。 问题答案: 从Go1.1版本开始,有一个bufio.Scanner API可以轻松读取文件中的行。考虑上面的以下示例,该示例使用Scanner重写:

  • wef:使用apache poi写入xlsm(Excel 2007) 当我向文件中写入一个简单的字符串时,我无法打开该文件。错误-“Excel无法打开文件“Test1.xlsm”,因为文件格式或文件扩展名无效”

  • 问题内容: 我需要在文本文件中读写数据,但是还无法弄清楚该怎么做。 我在Swift的iBook中找到了此示例代码,但我仍然不知道如何写入或读取数据。 问题答案: 为了进行读写,您应该使用可写的位置,例如documents目录。以下代码显示了如何读写简单的字符串。您可以在操场上进行测试。 雨燕3.x-5.x 斯威夫特2.2 斯威夫特1.x

  • 问题内容: 我试图将比对的蛋白质序列输出到文件,但是,每次我尝试将字符串写入文件时,输出字符串都会被截断。我尝试写入的字符串长4603个字符,并以正确的字符数打印到控制台。我要附加的第一段代码与输出变量本身有关。我将在此处包括完整的字符串,因为对我而言,在写入文件时字符串被截断的方式是可以重现的。 使用此代码段,文件的输出应等于al1。但是,该文件的输出如下: 将这两个序列粘贴到文字处理器中并计算

  • 问题 你想在文本模式打开的文件中写入原始的字节数据。 解决方案 将字节数据直接写入文件的缓冲区即可,例如: >>> import sys >>> sys.stdout.write(b'Hello\n') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str,