编写Java程序,将文本文件(附件提供有example.txt)的内容以“行”为单位进行倒序排列,运行效果见下图所示。

要求:(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();
    }

运行结果:

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值