使用Java的输入输出流将一个文本文件的内容按行读出,没读出一行就顺序添加行号,并写入另一个文件中。
时间: 2023-09-10 07:04:38 浏览: 142
Java的输入输出流实现文件的复制
5星 · 资源好评率100%
### 回答1:
可以使用Java的`BufferedReader`和`BufferedWriter`类来实现文件读取和写入。具体实现步骤如下:
1. 创建`BufferedReader`对象,用于读取原始文件内容。
2. 创建`BufferedWriter`对象,用于向目标文件中写入行号和对应的文本内容。
3. 使用`BufferedReader`的`readLine()`方法逐行读取原始文件内容,并在每一行前面添加行号。
4. 将带有行号的文本内容写入目标文件中,使用`BufferedWriter`的`write()`方法。
5. 关闭`BufferedReader`和`BufferedWriter`对象,释放资源。
以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileLineNumbers {
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
try (BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
int lineNumber = 1;
String line;
while ((line = reader.readLine()) != null) {
writer.write(lineNumber + ". " + line);
writer.newLine();
lineNumber++;
}
System.out.println("File written successfully!");
} catch (IOException e) {
System.out.println("Error reading/writing file: " + e.getMessage());
}
}
}
```
以上代码将会读取名为`input.txt`的文本文件,并按行号顺序将其内容写入名为`output.txt`的文件中。
### 回答2:
使用Java的输入输出流可以轻松地实现将一个文本文件的内容按行读取并添加行号后写入另一个文件中的功能。以下是实现这个过程的示例代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReaderWriterExample {
public static void main(String[] args) {
String inputFilePath = "input.txt"; // 输入文件路径
String outputFilePath = "output.txt"; // 输出文件路径
try {
// 创建输入流对象
FileReader fileReader = new FileReader(inputFilePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
// 创建输出流对象
FileWriter fileWriter = new FileWriter(outputFilePath);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
String line;
int lineNumber = 1;
// 逐行读取输入文件内容并写入到输出文件中
while ((line = bufferedReader.readLine()) != null) {
String lineWithNumber = lineNumber + ". " + line; // 添加行号
bufferedWriter.write(lineWithNumber);
bufferedWriter.newLine(); // 写入一个换行符
lineNumber++;
}
// 关闭输入输出流
bufferedReader.close();
bufferedWriter.close();
System.out.println("文件内容按行读取并添加行号后已成功写入到输出文件中!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们使用了`FileReader`和`BufferedReader`来逐行读取输入文件的内容,`FileWriter`和`BufferedWriter`用于写入带有行号的内容到输出文件中。通过循环读取输入文件的每一行内容并添加行号后,将结果写入到输出文件中。最后,关闭输入输出流并在控制台输出成功信息。
需要注意的是,上述代码中设定的输入和输出文件路径是相对路径,可以根据实际需求进行修改。
### 回答3:
使用Java的输入输出流,可以按照以下步骤将一个文本文件的内容按行读出,并且在读出的同时,顺序添加行号,最后将结果写入另一个文件中。
1. 创建一个输入流对象,用于读取源文件。可以使用FileInputStream等类来实现。
2. 创建一个输出流对象,用于写入目标文件。可以使用FileOutputStream等类来实现。
3. 使用循环结构,逐行读取源文件中的内容。
4. 在读取每一行的内容之后,为该行添加行号。可以使用一个计数器变量,每次读取一行时,计数器加1,得到行号。
5. 将带有行号的内容写入目标文件中。可以使用输出流对象的write()或者print()等方法来实现。
6. 关闭输入流和输出流,释放资源。
以下是一个使用Java的输入输出流实现将文本文件内容按行读取并添加行号的示例代码:
```
import java.io.*;
public class FileIOExample {
public static void main(String[] args) {
String sourceFilePath = "source.txt"; // 源文件的路径
String targetFilePath = "target.txt"; // 目标文件的路径
try {
BufferedReader reader = new BufferedReader(new FileReader(sourceFilePath));
BufferedWriter writer = new BufferedWriter(new FileWriter(targetFilePath));
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
String lineWithNumber = lineNumber + ": " + line;
writer.write(lineWithNumber);
writer.newLine();
lineNumber++;
}
reader.close();
writer.close();
System.out.println("文件处理成功!");
} catch (IOException e) {
System.out.println("文件处理出错: " + e.getMessage());
}
}
}
```
以上代码中,通过创建一个BufferedReader对象来逐行读取源文件的内容,使用BufferedWriter对象将带有行号的内容写入目标文件中。通过使用FileReader和FileWriter来实现输入输出流的功能。最后,关闭输入流和输出流,释放资源。
阅读全文