【java】java预备知识--流的有关用法-创新互联
1.写在前面
(2)关于处理流
文章题目:【java】java预备知识--流的有关用法-创新互联
网站网址:http://azwzsj.com/article/epgdc.html
这篇文章最多只能算是一点笔记,持续更新,而且有一些细枝末节的地方可能注意不到,仅限于应用,会长期进行更新,还望大佬能指点一二
凭借整站使用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.节点流的基础:四个基本抽象类字节流 | 字符流 | |
输入 | InputStream | Reader |
输出 | OutputStream | Writer |
这四个是抽象类,所有流都是从这四个实现的,字节流顾名思义,传递的是八个bit的子杰,字符流传递的是字符。其中字节流可以传递一切东西,而非文本文件最好不要用字符流,因为容易造成读出结果紊乱
2.节点流的实体类:其实是四个抽象类的具体实现,都已经封装在io这个包里面了,可以完成最基础的,对于载体的读写操作
文件操作流 | FileInputStream | FileOutputStream |
文件操作流的具体操作载体就是文件,具体使用方法如下哦
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() |
如果说节点流的具体实现是确定了何种载体和传输格式,
处理流就是对传进来和传出去的数据形式(比如数据类型)进行调整
关于最常见的缓冲流
输入 | 输出 | |
字节 | BufferedInputStream | BufferedOutputStream |
字符 | BufferedReader | BufferedWriter |
作用就是一次读取大量数据(类似缓冲数组),节约了很大的效率
还有常见的转换流,在输入的时候把字节流转化为字符流,在输出的时候把字符流转化为字节流
总之读入的时候是字节,然后内部处理的时候是个字符
转换 | InputStreamReader | OutputStreamWriter |
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://azwzsj.com/article/epgdc.html