使用java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。
时间: 2023-05-31 10:21:08 浏览: 1192
### 回答1:
可以使用Java的输入输出流来实现将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中的功能。
具体实现步骤如下:
1. 使用Java的File类打开要读取的文本文件和要写入的文件。
2. 使用Java的BufferedReader类读取文本文件的内容,每次读取一行。
3. 使用Java的BufferedWriter类将读取到的每行内容添加行号,并写入到要写入的文件中。
4. 循环读取文本文件的每一行,直到读取完毕。
5. 关闭输入输出流。
示例代码如下:
```
import java.io.*;
public class AddLineNumber {
public static void main(String[] args) {
try {
// 打开要读取的文件和要写入的文件
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
// 读取文件内容并添加行号
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
writer.write(lineNumber + ": " + line);
writer.newLine();
lineNumber++;
}
// 关闭输入输出流
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码可以将input.txt文件中的内容按行读出,每行添加行号后写入到output.txt文件中。
### 回答2:
Java 的输入输出流提供了一种简单而方便的方式,可以读取和写入文件。对于一个文本文件,我们可以使用 Java 输入输出流将其内容按行读取并添加行号,然后写入到另一个文件中。
步骤:
1. 首先,打开需要读取的文件,并创建一个用于写入的文件对象。
```
FileInputStream fileInput = new FileInputStream("需要读取的文件路径");
FileOutputStream fileOutput = new FileOutputStream("需要写入的文件路径");
```
2. 创建一个 BufferedReader 对象,以便按行读取文件。我们也可以创建一个 BufferedWriter 对象来写入到新的文本文件中。同时,声明一个变量来保存行数。
```
BufferedReader reader = new BufferedReader(new InputStreamReader(fileInput));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fileOutput));
int lineNumber = 1;
```
3. 使用 while 循环来逐行读取文件。如果读取到了文件的末尾,循环结束。
```
String line = null;
while((line = reader.readLine()) != null) {
// 执行读取每一行后的操作
}
```
4. 在 while 循环中,我们还需要对每一行进行操作。首先,将行数和该行的内容拼接在一起,形成新的行。这里我们可以使用字符串的格式化方法 `String.format()`。
```
String newLine = String.format("%d %s", lineNumber, line);
```
5. 将新的行写入到目标文件中,并增加行数。
```
writer.write(newLine);
writer.newLine(); // 添加换行符
lineNumber++;
```
6. 当读取到文件末尾时,关闭输入输出流。
```
reader.close();
writer.close();
```
完整的代码示例如下:
```java
import java.io.*;
public class FileIO {
public static void main(String[] args) {
FileInputStream fileInput = null;
FileOutputStream fileOutput = null;
try {
// 打开文件并创建用于写入的文件对象
fileInput = new FileInputStream("需要读取的文件路径");
fileOutput = new FileOutputStream("需要写入的文件路径");
// 创建用于读取文件的缓冲区对象
BufferedReader reader = new BufferedReader(new InputStreamReader(fileInput));
// 创建用于写入文件的缓冲区对象
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fileOutput));
int lineNumber = 1; // 存储行号
String line;
while ((line = reader.readLine()) != null) {
// 在每一行前添加行号
String newLine = String.format("%d %s", lineNumber, line);
// 将新的行写入到目标文件中
writer.write(newLine);
writer.newLine(); // 添加换行符
lineNumber++;
}
// 关闭输入输出流
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInput != null) {
fileInput.close();
}
if (fileOutput != null) {
fileOutput.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
通过以上代码,我们可以使用 Java 的输入输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。
### 回答3:
使用Java的输入、输出流读取和写入文件是很常见的操作。要将一个文本文件按行读出并添加行号,可以采用以下步骤:
1. 创建输入、输出流对象:使用Java中的FileReader读取文本文件,同时使用BufferedReader包装流来提高效率。同时使用FileWriter写入新的文本文件,也要用BufferedWriter来提高效率。
2. 读取文件内容并添加行号:可以使用while循环来读取文件的每一行,使用一个计数器记录每一行的行号,同时将读取到的每一行添加行号后保存到一个字符串变量中。
3. 将修改后的内容写入新文件:在循环中,每读取一行就将添加了行号的字符串写入新的文件中,这里需要使用BufferedWriter的write()方法,并在每写入一行后记得添加换行符。
最后,一定要关闭输入、输出流并释放资源。
具体的代码实现可以参照下面的示例:
```java
import java.io.*;
public class AddLineNumberToFile {
public static void main(String[] args) {
String inputFile = "C:\\input.txt";
String outputFile = "C:\\output.txt";
int lineNumber = 1;
String line;
try {
// 创建输入流对象
FileReader fileReader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
// 创建输出流对象
FileWriter fileWriter = new FileWriter(outputFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 读取文件内容并添加行号
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(lineNumber + " " + line + "\n");
lineNumber++;
}
// 关闭输入、输出流并释放资源
bufferedReader.close();
bufferedWriter.close();
fileReader.close();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
阅读全文