编写Java程序,将文本文件(附件提供有example.txt)的内容以“行”为单位进行倒序排列,运行效果见下图所示。用记事本显示文字“this is an example",要求:完成文件的操作,有两种途径:一是使用输入输出流;二是使用RandomAccessFile类。 (2)考虑到是对文本文件进行操作,如果使用输入输出流,则最好选择字符流。 (3)使用输入输出流,最后需要调用close()方法对流进行关闭。 (4)“读文件的成员方法”与“写文件的成员方法”之间的数据共享:定义带参数的成员方法,通过参数的传递在读文件和写文件的成员方法之间传递值;或者通过定义类的成员变量,使得读文件、写文件的两个成员方法共享数据。(1) 定义1个成员方法,实现文本文件的读操作。 (2) 定义1个成员方法,实现文本文件的定操作。 (3) 在主方法main()中,先调用读文本文件的方法,然后调用写文本文件的方法。
时间: 2024-02-12 09:08:42 浏览: 153
java代码-首先创建文件 test.txt,并把给定的数字以二进制形式写进该文件,同时输出到控制台上。 OutputStream与FileOutputStream创建文件,用write()写入数据,for循环语句组个写入数组数据,但会产生异常。
以下是一个Java程序,实现使用字符流对文本文件进行逆序输出的功能。该程序分别使用了FileReader/FileWriter和RandomAccessFile两种方式实现文件读写操作,你可以根据实际情况选择其中一种方式。同时,为了简化代码,这里没有对异常进行处理,实际使用时需要加上相应的异常处理。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TextFileReverse {
private List<String> lines = new ArrayList<>();
public void read(String filename) throws IOException {
FileReader reader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
bufferedReader.close();
reader.close();
}
public void write(String filename) throws IOException {
FileWriter writer = new FileWriter(filename);
for (int i = lines.size() - 1; i >= 0; i--) {
writer.write(lines.get(i) + "\n");
}
writer.close();
}
public void write2(String filename) throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile(filename, "rw");
long fileLength = randomAccessFile.length();
long pointer = fileLength;
for (int i = lines.size() - 1; i >= 0; i--) {
String line = lines.get(i);
byte[] bytes = (line + "\n").getBytes(StandardCharsets.UTF_8);
pointer -= bytes.length;
randomAccessFile.seek(pointer);
randomAccessFile.write(bytes);
}
randomAccessFile.close();
}
public static void main(String[] args) throws IOException {
String inputFilename = "example.txt";
String outputFilename = "reversed.txt";
TextFileReverse reverser = new TextFileReverse();
reverser.read(inputFilename);
Collections.reverse(reverser.lines);
reverser.write(outputFilename);
// or reverser.write2(outputFilename);
System.out.println("Done.");
}
}
```
阅读全文