java中文本文件内容反过来(倒序)(解题思路:一次读一行加载到list里面。再从list的末尾开始往前获取数据并且写入到文本中)
时间: 2023-08-31 07:43:21 浏览: 86
Reverse 倒序一个文件
4星 · 用户满意度95%
### 回答1:
对于您的问题,我可以提供以下代码:
```java
import java.io.*;
import java.util.*;
public class ReverseFile {
public static void main(String[] args) {
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
try {
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
List<String> lines = new ArrayList<>();
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
reader.close();
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
for (int i = lines.size() - 1; i >= 0; i--) {
writer.write(lines.get(i));
writer.newLine();
}
writer.close();
System.out.println("File was successfully reversed!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序可以将一个文本文件中的每一行内容反过来,并写入到另一个文本文件中。如果您需要使用,您需要将 `input.txt` 替换为您的输入文件名,将 `output.txt` 替换为您的输出文件名。
当然,如果您对程序有更多的要求,您可以进一步修改代码来满足您的需求。
### 回答2:
在Java中,可以使用以下步骤将文本文件的内容反过来(倒序):
1. 创建一个`FileReader`对象,并将要读取的文本文件作为参数传递给它。
2. 创建一个`BufferedReader`对象,并将`FileReader`对象作为参数传递给它,以便逐行读取文件内容。
3. 创建一个`ArrayList`对象,用于保存读取的每一行内容。
4. 使用`BufferedReader`对象的`readLine()`方法读取一行内容,将其添加到`ArrayList`中,直到读取到文件末尾。
5. 关闭`BufferedReader`对象和`FileReader`对象,释放资源。
6. 创建一个`FileWriter`对象,并将要写入的文本文件作为参数传递给它。
7. 创建一个`BufferedWriter`对象,并将`FileWriter`对象作为参数传递给它,以便逐行写入文件内容。
8. 通过遍历`ArrayList`的方式从末尾开始,依次获取每一行内容,并使用`BufferedWriter`的`write()`方法将其写入文件中。
9. 关闭`BufferedWriter`对象和`FileWriter`对象,释放资源。
下面是一个示例代码:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReverseFileContent {
public static void main(String[] args) {
try {
FileReader fileReader = new FileReader("original.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> lines = new ArrayList<>();
String line;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
bufferedReader.close();
fileReader.close();
FileWriter fileWriter = new FileWriter("reversed.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
Collections.reverse(lines);
for (String reversedLine : lines) {
bufferedWriter.write(reversedLine);
bufferedWriter.newLine();
}
bufferedWriter.close();
fileWriter.close();
System.out.println("文件内容反转成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码中,我们假设原始文本文件名为`original.txt`,反转后保存的新文件名为`reversed.txt`。你可以根据实际情况修改文件名、文件路径或者执行其他更多操作。
### 回答3:
要实现将Java中文本文件的内容反过来(倒序),可以按照以下步骤操作。
1. 打开源文件和目标文件,用于读取和写入文件的操作。
2. 创建一个空的List对象,用于存储读取的每行字符串。
3. 依次读取源文件的每一行,将其添加到List中。
4. 关闭源文件,释放资源。
5. 打开目标文件,准备将倒序的内容写入。
6. 从List的末尾开始循环遍历,逐行将内容写入目标文件。
7. 关闭目标文件,释放资源。
具体的Java代码如下:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReverseTextFile {
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));
// 创建一个List对象,用于存储读取的每行字符串
List<String> lines = new ArrayList<>();
// 依次读取源文件的每一行,并添加到List中
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
// 关闭源文件
reader.close();
// 从List的末尾开始循环遍历,逐行将内容写入目标文件
Collections.reverse(lines); // 反转List中的元素
for (String reversedLine : lines) {
writer.write(reversedLine);
writer.newLine(); // 换行
}
// 关闭目标文件
writer.close();
System.out.println("文件内容已经倒序写入目标文件。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码将源文件的内容按行反序写入了目标文件中,实现了将Java中文本文件内容反过来(倒序)的功能。
阅读全文