还不会文件读写操作?这一篇就通过实战教会你

Java是一门特别强大的面向对象的编程语言,不仅简洁方便,而且灵活多变。在它丰富的功能之一就可以操作文件。这几天有些小伙伴对文件操作不是很熟悉,也因为快到期末了,今天来实战演练一下,这样更方便理解与领悟。
首先对文件的操作肯定就会涉及到流的操作,这里先看一个IO流的类结构图。
在这里插入图片描述
这是一个经常使用到的一些输入输出流的类的继承树图。输入流或输出流又分为字节流和字符流,顾名思义就是以字节(二进制方式)或一个个字符进行输入和输出。在实际的业务中需要字节流还是字符流取决于业务需求是什么样的。

文件读取

首先我们要明白一个流程,我们要操作文件首先要创建一个操作文件的映射体或称为对象,然后再创建一个能够读取文件的对象,这样我们就可以把文件中的数据读取出来了。这里我的实例文件里填充的数据是字符,所以本例中采用的是字符流进行相关操作,下面用代码进行实战演练:

BufferedReader reader = new BufferedReader(new FileReader("F:\\xujinshuo.txt"));
        String str1=""; //读取的数据
        String line=""; //每行读取到的数据
        while ((line = reader.readLine()) != null){
            str1+=line.toUpperCase();
        }
        reader.close(); //流用完就必须关闭

我们如果想读取F盘下的xujinshuo.txt文件,首先我们创建一个FileReader操作文件对象把文件的路径放进去,之后再用功能比较强大的BufferedReader缓冲流进行包装,每次读取文件中的一行数据,在循环内可以进行其他的操作,比如:转大小写,添加其他样式符号等,每次读取的行数据进行累加,循环结束时,文件指针走到最后刚好读完所有数据。

文件写入

BufferedWriter writer = new BufferedWriter(new FileWriter("F:\\xujinshuo.txt",true));
        writer.newLine();   //换行写入
        writer.write(str1); //str1是需要写入的字符串数据
        writer.close();

写入的操作和读取操作在第一步创建相应的输入输出对象的方式上基本上都是大同小异,特别注意的是new FileWriter()这个构造器的第二个参数如果是false或者不写,默认是覆盖写入,就是写入现有数据会覆盖文件原有数据,从头开始添加。我们追加数据到文件,就需要把第二参数设置为true,true代表是从原有数据后面追加新的数据。接下来只需调用BufferedWriter对象的writer方法写入数据即可,最后一步很重要就是别忘了关闭流,不关闭流很可能出现异常或报错。

文件重命名

文件重命名也是比较简单的,但是注意的细节不少,一不小心可能就会重命名失败。

File file1 = new File("F:\\xujinshuo.txt");
        if (file1.renameTo(new File("F:\\xujinshuo_new.txt"))){

            System.out.println("文件重命名成功了!");
        }else {
            System.out.println("文件重命名失败!");
        }

通过创建一个文件对象File调用重命名方法renameTo,重命名成功该方法就会放回true,失败就会返回false。

注意:

1、重命名时文件扩展名不同。
2、重命名前的源文件不存在。这两点任一一点存在都会导致该方法返回false从而重命名失败,需要特别注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发飙的恒星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值