Java中深入浅析IO流的字节流

  介绍

这期内容当中小编将会给大家带来有关深入浅析Java中IO流的字节流,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强> Java中IO流字节流实例详解

<强> IO流(输入流,输出流),又分为字节流,字符流。

流是磁盘或其它外围设备中存储的数据的源点或终点。

输入流:程序从输入流读取数据源。数据源包括外界(键盘,文件,网络…),即是将数据源读入到程序的通信通道。

输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器,打印机,文件,网络…)的通信通道。

<强>字节流

1。InputStream, OutputStream

InputStream抽象了应用程序读取数据的方式

OutputStream抽象了应用程序写出数据的方式

2。读到文件结尾,称为EOF=结束,读到1就读到结尾

3。输入流基本方法

int b=in.read();读取一个字节,无符号填充到int的低八位。1是EOF

int.read (byte [] buf)读取数据填充到字节数组buf

int.read (byte[]缓冲区,int, int大小)读取数据填充到字节数组缓冲区,从缓冲区的开始位置开始存储规模长度的数据

4。输出流基本方法

。写(int b);写出一个字节到流,b的低八位

。写(byte [] buf);将buf字节数组都写入到流

。写(byte[]缓冲区,int, int大小),字节数组buf从开始位置开始写尺寸长度的字节到流

5. fileinputstream是InputStream的子类,具体实现了在文件上读取数据

,,6.FileOutputStream是OutputStream的子类,实现了向文件中写出字节数据的方法

<强> FileInputStream的演示:

包com.test.io;
  
  进口java.io.BufferedInputStream;
  进口java.io.BufferedOutputStream;
  进口java.io.File;
  进口java.io.FileInputStream;
  进口java.io.FileOutputStream;
  进口java.io.IOException;
  
  公开课IOUtils {/* *
  *读取指定文件内容,按照十六进制输出到控制台
  *并且每输出10个字节换行
  * @param文件名
  * @throws IOException
  */公共静态孔隙printHex(字符串文件名)抛出IOException {//把文件作为字节流进行读操作
  FileInputStream=新FileInputStream(文件名);
  int b;
  int i=1;
  在((b=in.read ()) !=1) {
  if (b & lt;=0 xf) {
  System.out.print (“0”);
  }
  System.out.print (Integer.toHexString (b) +“;“);
  如果(我% 10==0){
  System.out.println (“;”);
  }
  我+ +;
  }
  in.close ();
  }
  
  公共静态孔隙printHexByByteArray(字符串文件名)抛出IOException {
  FileInputStream=新FileInputStream(文件名);
  byte [] buf=新字节(20 * 1024);//如果字节数组够大,可以一次性读完//从在中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数/* int字节=6?buf 0 buf.length);
  int j=1;
  for (int i=0;我& lt;字节;我+ +){
  如果(buf[我]& lt;=0 xf) {
  System.out.print (“0”);
  }
  System.out.print(整数。toHexString (buf(我),0 xff) +“;“);
  如果(j % 10==0) {
  System.out.println (“;”);
  }
  + +;
  } *///如果字节数组不够大,不能一次性读完
  int字节=0;
  int j=1;
  在((字节=6?buf 0 buf.length)) !=1) {
  for (int i=0;我& lt;字节;我+ +){
  如果(buf[我]& lt;=0 xf) {
  System.out.print (“0”);
  }
  System.out.print(整数。toHexString (buf(我),0 xff) +“;“);
  如果(j % 10==0) {
  System.out.println (“;”);
  }
  + +;
  }
  }
  }
  
  }

<>强FileOutputStream的演示:

包com.test.io;
  
  进口java.io.FileOutputStream;
  进口java.io.IOException;
  
  公开课FileOutputDemo {
  
  公共静态void main (String [] args)抛出IOException {//如果该文件不存在,则直接创建,如果存在,删除后创建。(如果第二个参数为true,则将字节写入文件末尾处,而不是写入文件开始处)。
  FileOutputStream=new FileOutputStream (“F: \ \ javaio \ \ out.dat");
  out.write(& # 39;一个# 39;);//写入了”一个# 39;的低八位(一次只写入一个字节)
  int=10;
  出去了。写(在祝辞祝辞24);
  出去了。写(在祝辞祝辞16);
  出去了。写(在祝辞祝辞8);
  out.write(一个);
  
  byte [] b=?0“.getBytes ();
  out.write (b);
  
  out.close ();
  
  IOUtils.printHex (“F: \ \ javaio \ \ out.dat");
  }
  }

Java中深入浅析IO流的字节流