成都创新互联网站制作重庆分公司

【java】java预备知识--流的有关用法-创新互联

1.写在前面

这篇文章最多只能算是一点笔记,持续更新,而且有一些细枝末节的地方可能注意不到,仅限于应用,会长期进行更新,还望大佬能指点一二

凭借整站使用H5开发的创新体验、定制设计、设计团队积累与透明式的服务过程,符合行业特点,专属顾问根据企业产品,消费群体属性,准确定位;设计师以目标客户为中心,以突出品牌官网特性为宗旨,定制专属网站建设设计方案。

这里顺便整理一下会遇到的点:

1.关于read函数,这个函数有多个重载,这里列出两个
(1)int n=read();没有参数,一次读取一个字节or字符,返回的n要么是读出的东西,要么为-1代表读不到了
(2)int n=read(byte[] arr);会把读入的东西塞进数组里面,返回n为读出有效数字的个数
2.关于file流的第二参数
文件输出流输入节点流,第二个参数append,代表是否选择附加
如果为false,代表的是覆写

2.关于流的分类

不同的维度有不同的分类方法,比如分成字节流(一次传递8bit)字符流(一次传递一个字符),或者是最常见的分类方法:节点流和处理流

(1)关于节点流: 1.节点流的基础:四个基本抽象类
字节流字符流
输入InputStreamReader
输出OutputStreamWriter

这四个是抽象类,所有流都是从这四个实现的,字节流顾名思义,传递的是八个bit的子杰,字符流传递的是字符。其中字节流可以传递一切东西,而非文本文件最好不要用字符流,因为容易造成读出结果紊乱

2.节点流的实体类:

其实是四个抽象类的具体实现,都已经封装在io这个包里面了,可以完成最基础的,对于载体的读写操作

文件操作流FileInputStreamFileOutputStream

文件操作流的具体操作载体就是文件,具体使用方法如下哦

BufferedInputStream b = new BufferedInputStream(new FileInputStream(f));
        BufferedOutputStream o=new BufferedOutputStream(new FileOutputStream("src/文件2.jpg",false));
       
        int n=b.read();
        while(n!=-1){
            o.write(n);
            n=b.read();
        }
        b.close();
        o.close();

//文件复制操作

再举一个例子,我们平时用到的system对于io的支持,实际上也是一种载体为键盘,控制台的字节输入流

System也是字节流System.in()System.out()
(2)关于处理流

如果说节点流的具体实现是确定了何种载体和传输格式,

处理流就是对传进来和传出去的数据形式(比如数据类型)进行调整

关于最常见的缓冲流

输入输出
字节BufferedInputStreamBufferedOutputStream
字符BufferedReaderBufferedWriter

作用就是一次读取大量数据(类似缓冲数组),节约了很大的效率

还有常见的转换流,在输入的时候把字节流转化为字符流,在输出的时候把字符流转化为字节流

总之读入的时候是字节,然后内部处理的时候是个字符

转换InputStreamReaderOutputStreamWriter

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

数据流,用来传递基本数据类型和字符串

数据DataInputStream

DataOutputstream

DataOutputStream dp=new DataOutputStream(new FileOutputStream("src/测试.txt"));
        dp.writeInt(114514);
DataInputStream dp=new DataInputStream(new FileInputStream("src/测试.txt"));
        System.out.println(dp.readInt());

对象流:用来传递对象,这个接收的时候有点麻烦,可能还需要反序列化的知识在里面

对象ObjectInputStream

ObjectOutputstream

ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream("src/测试.txt"));
        os.writeObject(new Integer(13));

 ObjectInputStream os=new ObjectInputStream(new FileInputStream("src/测试.txt"));
        System.out.println(os.readObject());

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:【java】java预备知识--流的有关用法-创新互联
文章位置:http://cxhlcq.com/article/epgdc.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部