如何用东西代替线?

时间:2019-06-13 16:27:49

标签: java

因此我的程序需要覆盖文件中的第5行。只是第5行,请保留其他行。 我们不知道第5行的内容。 但是我不知道该怎么做,找不到关于如何使用BufferedWriter和FileWriter进行此操作的任何信息。 我不能在那里写代码,因为..我只是不知道该怎么做。:/

3 个答案:

答案 0 :(得分:0)

首先,您可以开始查找我发现的“如何计算文件中的行数”

https://www.geeksforgeeks.org/counting-number-lines-words-characters-paragraphs-text-file-using-java/

然后,每次(counter == 5)时,每次传递一行时添加counter ++ 然后做任何你需要做的..

答案 1 :(得分:0)

示例解决方案如下

package teststuff;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Btest {

 public static void main(String args[])
     {
     try
         {
         File file = new File("test.txt");
         BufferedReader reader = new BufferedReader(new FileReader(file));
         String line = "", oldtext = "", fivthLine = "";
         int x=0;
         while((line = reader.readLine()) != null)
             {
             oldtext += line + "\r\n";
             if(x == 4)
             {
                 fivthLine = line;
             }
             x++;
         }
         reader.close();

         String newtext = oldtext.replaceAll(fivthLine, "blah blah blah");

         FileWriter writer = new FileWriter("test.txt");
         writer.write(newtext);writer.close();
     }
     catch (IOException ioe)
         {
         ioe.printStackTrace();
     }
 }
}

请注意,这是伊曼纽尔(Emmanuel)和this 它还将替换文件第5行中写的内容,以便包含第5行相同内容的另一行也将被覆盖 "blah blah blah"

答案 2 :(得分:0)

这是替换文件中给定行的非常简单的示例:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.nio.file.Files;
import java.nio.file.Paths;

public class LineReplaceTest
{
    public static void main(String... args)
            throws Exception
    {
        int lineToReplace = 5;
        String replacementText = "This is a different line";

        Path input = Paths.get("input.txt");
        Path output = Paths.get("output.txt");

        // Use try-with-resources to ensure our readers & writers are closed
        try (BufferedReader reader = Files.newBufferedReader(input);
             BufferedWriter writer = Files.newBufferedWriter(output)) {
            String line;
            int lineNumber = 0;

            // While there is a line to read from input...
            while ((line = reader.readLine()) != null) {
                lineNumber++;

                // Write out either the line from the input file or our replacement line
                if (lineNumber == lineToReplace) {
                    writer.write(replacementText);
                } else {
                    writer.write(line);
                }
                writer.newLine();
            }
        }

        // Once we're done, overwrite the input file
        Files.move(output, input);
    }
}

它忽略了行错误处理和特定于平台的换行符处理的几项重要内容,但至少应该使您入门。