这期内容当中小编将会给大家带来有关深入浅析Java中IO流的字节流,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Java中IO流 字节流实例详解
IO流(输入流、输出流),又分为字节流、字符流。
流是磁盘或其它外围设备中存储的数据的源点或终点。
输入流:程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道。
输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。
字节流
1.InputStream、OutputStream
InputStream抽象了应用程序读取数据的方式
OutputStream抽象了应用程序写出数据的方式
2.读到文件结尾,称为EOF = end,读到-1就读到结尾
3.输入流基本方法
int b = in.read();读取一个字节,无符号填充到int的低八位.-1是EOF
int.read(byte[] buf)读取数据填充到字节数组buf
int.read(byte[] buf, int start, int size)读取数据填充到字节数组buf,从buf的start位置开始存储size长度的数据
4.输出流基本方法
out.write(int b);写出一个byte到流,b的低八位
out.write(byte[] buf);将buf字节数组都写入到流
out.write(byte[] buf, int start, int size);字节数组buf从start位置开始写size长度的字节到流
5.FileInputStream是InputStream的子类,具体实现了在文件上读取数据
6.FileOutputStream是OutputStream的子类,实现了向文件中写出字节数据的方法
FileInputStream的demo:
package com.test.io;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class IOUtils { public static void printHex(String fileName) throws IOException { //把文件作为字节流进行读操作 FileInputStream in = new FileInputStream(fileName); int b; int i = 1; while ((b = in.read()) != -1) { if (b <= 0xf) { System.out.print("0"); } System.out.print(Integer.toHexString(b) + " "); if (i % 10 == 0) { System.out.println(""); } i++; } in.close(); } public static void printHexByByteArray(String fileName) throws IOException { FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20*1024]; //如果字节数组够大,可以一次性读完 //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 //如果字节数组不够大,不能一次性读完 int bytes = 0; int j = 1; while ((bytes = in.read(buf, 0, buf.length)) != -1) { for (int i = 0; i <bytes; i++) { if (buf[i] <= 0xf) { System.out.print("0"); } System.out.print(Integer.toHexString(buf[i] & 0xff) + " "); if (j % 10 == 0) { System.out.println(""); } j++; } } }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756