Java文件字符流和字节流的输入和输出

Java文件字符流和字节流的输入和输出

天津卓众教育      2022-03-10 14:40:02     26

Java文件字符流和字节流的输入和输出,总的来说,IO流分类如下:输入输出方向:输入流(从外设读取到内存)和输出流(从内存输出到外设)数据的操作方式:字节流和字符

课程价格 请咨询

上课时段: 授课校区:

详细介绍

总的来说,IO流分类如下:

输入输出方向:输入流(从外设读取到内存)和输出流(从内存输出到外设)

数据的操作方式:字节流和字符流

其中,字符流的由来:字节流读取文字字节数据后,不直接操作,而是先查指定的编码表(为什么是指定的?因为不同的国家制定的编码表不一样)获取对应的文字,再对这个文字进行操作。简单说:字符流=字节流+编码表

字节流和字符流的区别:字节流不仅可以操作字符,还可以操作其他媒体文件

来张形象的图片:

Java中的顶层父类:

字节流:InputStream,OutputStream

字符流:Reader, Writer

缓存技术

使用缓存技术能提高性能(?为什么,因为缓存技术相当于实在内存中开辟一个容器,将外设中的数据放到容器中,然后对容器进行操作,相比直接操作外设,确实大大提高效率)

1. 自己定义缓存区:相当于自定义一个数组

字节流缓存区:byte[] buf = new byte[1024];

字符流缓存区:char[] buf = new char[1024];

2. 利用缓存类,此处用到了装配设计模式

何为装配设计模式?

当需要对对象进行功能扩展时,为了避免继承的臃肿和不灵活,将装配类进行单独的封装,那个对象需要就将哪个对象和装配类进行关联

字节流缓存:BufferedInputStream bfi = new BufferedInputStream(fi);BufferedOutputStream bfo = new BufferedOutputStream(fo);字符流缓存:BufferedReader br = new BufferedReader(fr);BufferedWriter bw = new BufferedWriter(fw);

示例:

使用字符流赋值一个txt文件

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;public class BufferedRWDemo {    public static void main(String[] args) throws Exception {        // 读写相结合        FileReader fr = new FileReader("fw.txt");        BufferedReader br = new BufferedReader(fr);                FileWriter fw = new FileWriter("fwcopy.txt");                BufferedWriter bw = new BufferedWriter(fw);                String line = null;                while((line=br.readLine())!=null) {            bw.write(line);            bw.newline();//此处不写就没有换行            bw.flush();            System.out.println(new String(line));        }                br.close();        bw.close();    }}

以上就是天津卓众教育java培训机构的小编针对“Java文件字符流和字节流的输入和输出”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

培训啦提醒您:交易时请核实对方资质,对于过大宣传或承诺需谨慎!任何要求预付定金、汇款等方式均存在风险,谨防上当。