Java IO流

java IO流的核心在于对字节、字符类型数据的输入和输出,流的本质是数据传输,并且流是单向的,从数据角度分为两个大类,字节流和字符流

 通常我们再使用流时不是单单的使用某一个流,我们会将几个流组装成一个口进行数据的传输,比如输入流:

FileInputStream fis=new FileInputStream("./demo.java");
//当读取的不是文件而是流时,可以通过socket获取流
//eg. InputStream is=socket.getInputstream();
InputStreamReader isr=new InputStreamReader(fis);//转换流
//在这里是可以指定字符的编码格式的,在括号里边加一个逗号,后边直接写Standardcharsets
BufferedReader br=new BufferedReader(isr);//缓冲流
在这里就可以直接对br进行读操作,如String line=br.readLine();

输出流:

FileoutputStream fos=new FileOutputStream("./demo2.java");
//当然这里如果不是输出文件的话也可以通过socket获取OutputStream进行流的输出
//eg. OutputStream os=socket.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);
PrintWriter pw=new PrintWriter(bw);//这里建议加上自动行刷新,在括号里bw后边加上,true

接下来就能直接调用pw.writer(line);输出line的内容到socket源

上述用到的流有几种:

1.字节输出输入流OutputStream,InputStream,他们是字节流的超类

2.字符输出输入流:Writer和Reader,他们是字符流的超类

3.转换流:转换流通常使用在字节和字符需要转换或是需要编解码时

4.缓冲流:这类流可以认为是一个数组,其内部加载一个定长的数组,每次装满/被flush后就输出一次或输入一次

下面是一份更细致的Java IO流整理的文章,可以参考一下:

Java IO学习整理 - 知乎 (zhihu.com)icon-default.png?t=M276https://zhuanlan.zhihu.com/p/25418336#:~:text=Java%20IO%20%E4%B9%9F%E7%A7%B0%E4%B8%BAIO%E6%B5%81%EF%BC%8CIO%20%3D,%E6%B5%81%EF%BC%8C%E5%AE%83%E7%9A%84%E6%A0%B8%E5%BF%83%E5%B0%B1%E6%98%AF%E5%AF%B9%E6%96%87%E4%BB%B6%E7%9A%84%E6%93%8D%E4%BD%9C%EF%BC%8C%E5%AF%B9%E4%BA%8E%20%E5%AD%97%E8%8A%82%20%E3%80%81%E5%AD%97%E7%AC%A6%E7%B1%BB%E5%9E%8B%E7%9A%84%E8%BE%93%E5%85%A5%E5%92%8C%E8%BE%93%E5%87%BA%E6%B5%81%E3%80%82%20IO%E6%98%AF%E6%8C%87%E5%AF%B9%E6%95%B0%E6%8D%AE%E6%B5%81%E7%9A%84%E8%BE%93%E5%85%A5%E5%92%8C%E8%BE%93%E5%87%BA%EF%BC%8C%E4%B9%9F%E7%A7%B0%E4%B8%BAIO%E6%B5%81%EF%BC%8CIO%E6%B5%81%E4%B8%BB%E8%A6%81%E5%88%86%E4%B8%BA%E4%B8%A4%E5%A4%A7%E7%B1%BB%EF%BC%8C%E5%AD%97%E8%8A%82%E6%B5%81%E5%92%8C%E5%AD%97%E7%AC%A6%E6%B5%81%E3%80%82%20%E5%AD%97%E8%8A%82%E6%B5%81%E5%8F%AF%E4%BB%A5%E5%A4%84%E7%90%86%E4%BB%BB%E4%BD%95%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%A6%82%E5%9B%BE%E7%89%87%EF%BC%8C%E8%A7%86%E9%A2%91%E7%AD%89%EF%BC%8C%E5%AD%97%E7%AC%A6%E6%B5%81%E5%8F%AA%E8%83%BD%E5%A4%84%E7%90%86%E5%AD%97%E7%AC%A6%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE%E3%80%82

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值