Java 将.txt文件的第一行添加到最后一行

Java 将.txt文件的第一行添加到最后一行,java,bufferedreader,bufferedwriter,Java,Bufferedreader,Bufferedwriter,在Java中,我有一个a.txt列表试图将第一行移到最后一行 我找到了执行以下操作的脚本 从输入文件中查找“文本”,并输出到临时文件。(我可以设定 将“文本”转换为字符串buffRead.readLine???),然后 删除原始文件并将新文件重命名为原始文件 请告诉我我是Java新手,但我做了很多研究,找不到一个简单脚本的解决方案。因为这是Java,涉及到文件IO,所以这是一个非常重要的设置。算法本身很简单,但这样做所需的符号并不明显 BufferedReader reader = new Bu

在Java中,我有一个
a.txt
列表试图将第一行移到最后一行

我找到了执行以下操作的脚本

  • 从输入文件中查找“文本”,并输出到临时文件。(我可以设定 将“文本”转换为字符串buffRead.readLine???),然后
  • 删除原始文件并将新文件重命名为原始文件

  • 请告诉我我是Java新手,但我做了很多研究,找不到一个简单脚本的解决方案。

    因为这是Java,涉及到文件IO,所以这是一个非常重要的设置。算法本身很简单,但这样做所需的符号并不明显

    BufferedReader reader = new BufferedReader(new FileReader("fileName"));
    
    这为您提供了一种读取文件
    fileName
    内容的简单方法

    PrintWriter writer = new PrintWriter(new FileWriter("fileName"));
    
    这为您提供了一种写入文件的简单方法。这样做的API与使用
    PrintWriter
    时的
    System.out
    完全相同,因此我选择在这里使用

    在这一点上,只需读取文件并按正确顺序回显即可

    String text = reader.readLine();
    
    这会将文件的第一行保存到
    text

    while (reader.ready()) {
        writer.println(reader.readLine());
    }
    
    读卡器
    中仍有文本时,将行打印到
    写卡器

    writer.println(text);
    
    打印开始时保存的行

    请注意,如果您的程序执行任何其他操作(不管怎样,这只是一个好习惯),您希望关闭IO流以避免资源泄漏

    reader.close();
    writer.close();
    

    或者,您也可以将整个内容包装在一个容器中,以自动执行相同的清理。

    因为这是Java,涉及到文件IO,所以这是一个非常重要的设置。算法本身很简单,但这样做所需的符号并不明显

    BufferedReader reader = new BufferedReader(new FileReader("fileName"));
    
    Scanner fileScanner = new Scanner(myFile);
    fileScanner.nextLine();
    
    这为您提供了一种读取文件
    fileName
    内容的简单方法

    PrintWriter writer = new PrintWriter(new FileWriter("fileName"));
    
    这为您提供了一种写入文件的简单方法。这样做的API与使用
    PrintWriter
    时的
    System.out
    完全相同,因此我选择在这里使用

    在这一点上,只需读取文件并按正确顺序回显即可

    String text = reader.readLine();
    
    这会将文件的第一行保存到
    text

    while (reader.ready()) {
        writer.println(reader.readLine());
    }
    
    读卡器
    中仍有文本时,将行打印到
    写卡器

    writer.println(text);
    
    打印开始时保存的行

    请注意,如果您的程序执行任何其他操作(不管怎样,这只是一个好习惯),您希望关闭IO流以避免资源泄漏

    reader.close();
    writer.close();
    
    或者,您也可以将整个内容包装在一个容器中,以自动执行相同的清理

    Scanner fileScanner = new Scanner(myFile);
    fileScanner.nextLine();
    
    这将返回文件中的第一行文本,并将其丢弃,因为您没有将其存储在任何位置。 要覆盖现有文件,请执行以下操作:

    FileWriter fileStream = new FileWriter("my/path/for/file.txt");
    BufferedWriter out = new BufferedWriter(fileStream);
    while(fileScanner.hasNextLine()) {
        String next = fileScanner.nextLine();
        if(next.equals("\n") out.newLine();
        else out.write(next);
        out.newLine();   
    }
    out.close();
    
    请注意,您必须以这种方式捕获和处理一些
    IOExceptions
    。还有,
    if()
    <代码>其他()。。。语句在
    while()
    循环中是必需的,以保持文本文件中存在任何换行符

    将同一行添加到此文件的最后一行查看此链接

    这将返回文件中的第一行文本,并将其丢弃,因为您没有将其存储在任何位置。 要覆盖现有文件,请执行以下操作:

    FileWriter fileStream = new FileWriter("my/path/for/file.txt");
    BufferedWriter out = new BufferedWriter(fileStream);
    while(fileScanner.hasNextLine()) {
        String next = fileScanner.nextLine();
        if(next.equals("\n") out.newLine();
        else out.write(next);
        out.newLine();   
    }
    out.close();
    
    请注意,您必须以这种方式捕获和处理一些
    IOExceptions
    。还有,
    if()
    <代码>其他()。。。语句在
    while()
    循环中是必需的,以保持文本文件中存在任何换行符


    将同一行添加到此文件的最后一行查看此链接

    读取第一行并将其存储到字符串中,然后读取文件的其余部分,并将每一行输出到新文件。最后,在新文件的末尾写入第一行。简单,你就可以及时回家吃玉米片了。读第一行并将其存储到字符串中,然后读文件的其余部分,将每一行输出到新文件中。最后,在新文件的末尾写入第一行。简单,你会及时回家吃玉米片。