首页
学习
活动
专区
工具
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行的内容到一个新的输出文件中。你可以根据实际需要修改输入文件路径、输出文件路径和要复制的行号。请确保目标文件夹可写入并有足够的权限。

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

相关·内容

7分1秒

Split端口详解

3分7秒

MySQL系列九之【文件管理】

6分14秒

48.忽略Eclipse中的特定文件.avi

7分53秒

EDI Email Send 与 Email Receive端口

22分13秒

JDBC教程-01-JDBC课程的目录结构介绍【动力节点】

6分37秒

JDBC教程-05-JDBC编程六步的概述【动力节点】

7分57秒

JDBC教程-07-执行sql与释放资源【动力节点】

6分0秒

JDBC教程-09-类加载的方式注册驱动【动力节点】

25分56秒

JDBC教程-11-处理查询结果集【动力节点】

19分26秒

JDBC教程-13-回顾JDBC【动力节点】

15分33秒

JDBC教程-16-使用PowerDesigner工具进行物理建模【动力节点】

7分54秒

JDBC教程-18-登录方法的实现【动力节点】

领券