Java文件读写操作

166 阅读2分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

前面两篇我们已经说了文件的遍历操作,文件的监听操作,现在我们就来看看文件的读写,以及一些基本的操作,比如说前端传入文件后的文件格式校验操作;在说文件校验时,我们通常的做法是直接取后缀名,然后和我们期望的后缀名比较,相等则校验通过,但是某些恶意脚本可能会借着这个外壳,趁机进入我们的服务器,所以在服务端,我们可能得通过二进制文件来进行校验,这里我们可以通过hutools的工具类来进行类型校验处理;

String type = FileTypeUtil.getType(file);

对于上传通过校验后的文件,我们可能需要读取文件内容,通常情况下我们的文件都是按行存储的,所以我们就以每次读取一行来进行,(用缓冲读取的方式),当然你也可以选择按字符,只需在循环体那将readline变为read加上一次读取字符的参数即可,对于BufferedInputStream的对象,你当然也可以用byte来进行读取;

BufferedReader br = new BufferedReader(new FileReader(file));

记得,读取完后记得关闭

br.close();

有读取自然就有写入,那你BufferedReader是读取,写入也就是BufferedWrite,说一下,不论写入读取以什么样的方式,这里尽量用缓冲流,以达到性能最大化;BufferedWrite里的FileWriter有两个参数一个是文件对象,一个是是否追加,默认FALSE;表示覆盖,记得写入后关闭连接,

 BufferedWriter bw = new BufferedWriter(new FileWriter(file,true));

这里我们可以配合上一节的文件监听,看文件变化状态在文件监听的时候来是怎么一个效果,我这里让流程睡眠十秒后写入来进行观测,可以看到文件变化后,在下一次轮询的时候就会输出变化情况,

一句题外话,对于文件的操作,网上有很多优秀的工具类,完全可以拿来使用,因为我们自己写很可能会忘记关闭连接

这里依然将代码放上去,但追加在上一次上文件中,

gitee.com/sixiaoluo/c… 的 FileListenUtil.java