首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Java将文件中的特定行复制到新文件

要实现将文件中的特定行复制到新文件,可以按照以下步骤进行:

  1. 打开要读取的文件并创建一个用于写入的新文件。
代码语言:txt
复制
String inputFile = "path/to/inputFile.txt";
String outputFile = "path/to/outputFile.txt";

FileReader fileReader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);

FileWriter fileWriter = new FileWriter(outputFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
  1. 定义要复制的特定行的行号。例如,如果要复制第2行和第5行,可以将其定义为一个整数数组。
代码语言:txt
复制
int[] lineNumbersToCopy = {2, 5};
  1. 使用循环逐行读取源文件内容,并判断当前行是否需要复制。
代码语言:txt
复制
String line;
int lineNumber = 1;

while ((line = bufferedReader.readLine()) != null) {
    if (isLineNumberToCopy(lineNumber, lineNumbersToCopy)) {
        // 复制当前行到新文件
        bufferedWriter.write(line);
        bufferedWriter.newLine();
    }
    lineNumber++;
}
  1. 实现isLineNumberToCopy方法,用于判断当前行是否需要复制。
代码语言:txt
复制
boolean isLineNumberToCopy(int lineNumber, int[] lineNumbersToCopy) {
    for (int number : lineNumbersToCopy) {
        if (lineNumber == number) {
            return true;
        }
    }
    return false;
}
  1. 关闭读取和写入的文件资源。
代码语言:txt
复制
bufferedReader.close();
bufferedWriter.close();

完整代码示例:

代码语言:txt
复制
import java.io.*;

public class FileLineCopier {
    public static void main(String[] args) {
        String inputFile = "path/to/inputFile.txt";
        String outputFile = "path/to/outputFile.txt";
        int[] lineNumbersToCopy = {2, 5};

        try {
            FileReader fileReader = new FileReader(inputFile);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            FileWriter fileWriter = new FileWriter(outputFile);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

            String line;
            int lineNumber = 1;

            while ((line = bufferedReader.readLine()) != null) {
                if (isLineNumberToCopy(lineNumber, lineNumbersToCopy)) {
                    bufferedWriter.write(line);
                    bufferedWriter.newLine();
                }
                lineNumber++;
            }

            bufferedReader.close();
            bufferedWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    static boolean isLineNumberToCopy(int lineNumber, int[] lineNumbersToCopy) {
        for (int number : lineNumbersToCopy) {
            if (lineNumber == number) {
                return true;
            }
        }
        return false;
    }
}

这个示例程序将会读取指定的输入文件,复制第2行和第5行的内容到一个新的输出文件中。你可以根据实际需要修改输入文件路径、输出文件路径和要复制的行号。请确保目标文件夹可写入并有足够的权限。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券