【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预备知识--流的有关用法-创新互联
转载来于:https://www.cdcxhl.com/article12/epgdc.html

成都网站建设公司_创新互联,为您提供做网站软件开发电子商务营销型网站建设定制开发移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作