如何在java中向RandomAccessFile写入文本时转到新行?

时间:2016-09-08 17:23:06

标签: java database randomaccessfile

我正在尝试创建一个程序,用户可以在其中创建数据库并添加记录。我使用随机访问文件和我当前的代码,我能够写在文件上。但是,如果文件中还有其他记录,我希望用户添加的新记录附加在文件末尾的新行上。现在,它附加在文件的末尾,但与之前的最后一条记录位于同一行。你可以帮我改变我的代码来做我要求的事情。

这是enterData()的代码。

    public static void enterData(String fileName) {

    String temp = " ";


    try {
        RandomAccessFile OUT = new RandomAccessFile(fileName, "rw");
        long fileSize = OUT.length();

        System.out.print("Id: ");
        try {
            Id = Integer.parseInt(reader.readLine());
        }catch (IOException e) {}


        System.out.print("Experience: ");
        try{
            experience = Integer.parseInt(reader.readLine());
        }
        catch(IOException e){}


        System.out.print("Wage: ");
        try {
            wage = Integer.parseInt(reader.readLine());

        } catch (IOException e) {}



        System.out.print("Industry: ");
        industry = reader.readLine();

        for (int i = 0; i<100 - industry.length(); i++){
            StringBuilder sb = new StringBuilder();
            sb.append(" ");
            sb.append(industry);
            industry = sb.toString();
        }

        FilePointerPosition = Id;
        OUT.seek(fileSize);

        String formatted = String.format("%20s%20s%20s%40s", Id, experience, wage, industry);

        OUT.writeUTF(formatted);

        OUT.close();
      } catch (IOException e) {}


      }

1 个答案:

答案 0 :(得分:0)

要在新行中写入文件中的下一行文本,您只需在每条记录的末尾添加newline character即可。为此,您可以通过在格式规范的末尾添加formatted格式化 字符串变量"\n"

String formatted = String.format("%20s%20s%20s%40s\n", 
                                  Id, experience, wage, industry);
                 //notice the "\n" in the end of the String format

OUT.writeUTF(formatted);

这将在写入formatted的内容后将文件中的光标移动到新行,就像System.out.println()方法在闪烁输出后将光标移到VDU上的新行一样。 / p>