JAVA之IO技术用字节流对文本文件进行读写FileInputStream,FileInputStream
2021/6/3 20:22:43
本文主要是介绍JAVA之IO技术用字节流对文本文件进行读写FileInputStream,FileInputStream,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package ioTest.io2; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* * IO: * 字符流:Writer,Reader * 字节流:OutPutStream,InPutStream * * 下面的实例仍然是对文本文件进行操作。但是字节流大多用于操作非文本文件, * 比如音频视频图片等文件 */ public class FileSteam { public static void main(String[] args) throws IOException { //writeFile(); readFile_3(); } //三种不同的方式的读取文件 //读一个字节 public static void readFile_1() throws IOException { FileInputStream fInputStream=new FileInputStream("ioTest1.txt"); int ch; while((ch=fInputStream.read())!=-1) { System.out.println((char)ch); } fInputStream.close(); } //读指定长度字节数组 public static void readFile_2() throws IOException { byte[] buf=new byte[1024]; int len=0; FileInputStream fInputStream=new FileInputStream("ioTest1.txt"); while((len=fInputStream.read(buf))!=-1) { System.out.println(new String(buf, 0, len)); } fInputStream.close(); } //读全长度的字节数组,也就是说一次性读取 public static void readFile_3() throws IOException { FileInputStream fInputStream=new FileInputStream("ioTest1.txt"); int len=fInputStream.available(); byte[] buf=new byte[len]; fInputStream.read(buf); System.out.println(new String(buf)); fInputStream.close(); } /* * 比较以上三种方式,第二种方式比第一方式更优越。 * 第三种方式在读写一些小文件的时候,看似是比前两种方式好。 * 但是文件很大的情况下,在第三种情况下,如果内存一次性不能存储这么大容量的文件时候 * 就会出现内存溢出。 * 所以最终和最常用的我们有限选择第二种方式。 */ public static void writeFile() throws IOException { //创建一个流 FileOutputStream foStream=new FileOutputStream("ioTest1.txt"); foStream.write("abcde".getBytes()); //foStream.flush(); //发现没有上面的话,仍然写入成功。原因是字节操作时读写操作的最小单位。 //所以这里暂时不用flush。字符操作实际上底层是基于字节的,所以又两个字节-一个字符的一个缓冲处理 //所以需要刷新 foStream.close(); } }
这篇关于JAVA之IO技术用字节流对文本文件进行读写FileInputStream,FileInputStream的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程