要求:(1) 定义1个成员方法,实现文本文件的读操作。
(2) 定义1个成员方法,实现文本文件的定操作。
(3) 在主方法main()中,先调用读文本文件的方法,然后调用写文本文件的方法。
提示:
(1)完成文件的操作,有两种途径:一是使用输入输出流;二是使用RandomAccessFile类。
(2)考虑到是对文本文件进行操作,如果使用输入输出流,则最好选择字符流。
(3)使用输入输出流,最后需要调用close()方法对流进行关闭。
(4)“读文件的成员方法”与“写文件的成员方法”之间的数据共享:定义带参数的成员方法,通过参数的传递在读文件和写文件的成员方法之间传递值;或者通过定义类的成员变量,使得读文件、写文件的两个成员方法共享数据。
代码一:
注意(这里面的路径名要修改为自己电脑的路径名,否则会报错)
public static void main(String[] args) throws IOException {
//这里的文件名要修改你们自己的文件路径名
File file = new File("E:\\testtesttesttesttest\\example.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String[] temp = new String[20];
int num = 0;
String s;
while ((s = br.readLine()) != null) {//进行判断文件读取进度,读完为null就退出
temp[num] = s; //将每一行语句添加到临时的字符数组temp[]中,
num++; //计算行数
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
for (int i = num - 1; i >= 0; i--) {
bw.write(temp[i]);
bw.newLine();
}
bw.flush();
bw.close();
//运行完成后再次打开和路径里面的TXT文档和下载的TXT文档对比,会有变化
System.out.println("已排序完毕,请打开example查看!");
}
代码二:
int num = 0;
String[] temp = new String[20];
public static void main(String[] args) throws IOException {
//这里的对象要是自己类的对象
Exercisework exercisework = new Exercisework();
exercisework.ReaderFile();
exercisework.WriterFile();
System.out.println("已排序完毕,请打开example查看!");
}
//方法1:读取文件
public void ReaderFile() throws IOException {
//这里的文件名要修改你们自己的文件路径名
File reader = new File("E:\\testtesttesttesttest\\example.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(reader));
String s;
while ((s = bufferedReader.readLine()) != null) {
temp[num] = s; //将每一行语句添加到临时的字符数组temp[]中,
num++; //计算行数
}
bufferedReader.close(); //关闭文件流
}
//方法2:写入文件
public void WriterFile() throws IOException {
File writer = new File("E:\\testtesttesttesttest\\example.txt");
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(writer));
for (int i = num - 1; i >= 0; i--) {
bufferedWriter.write(temp[i]);
bufferedWriter.newLine();
}
bufferedWriter.flush();
bufferedWriter.close();
}
运行结果: