首页 > 学院 > 开发设计 > 正文

Java当中的I/O的字节流

2019-11-14 21:47:22
字体:
来源:转载
供稿:网友
java当中的I/O的字节流

I/O是input/output的缩写,即输入输出系统。

I/O操作即从数据源中读取数据,以及将数据写入到数据目的地中。读的来源(如文件、键盘、网络)和写的目的地(如文件、屏幕、网络)分为很多种。

数据的流向以java程序为参照物,数据进入到程序中使用输入流,数据从程序中出去则使用输出流。

“流”:在数据源和程序之间建立的用于数据流通的管道,数据通过管道一点点的流入/流出。

I/O的分类:

输入流/输出流,字节流/字符流,节点流/处理流

I/O当中字节流的核心类

InputStream类和OutputStream类是所有字节流类的父类,两个类都是抽象类。FileInputStream是InputStream的常用子类,用于从硬盘中读取数据。FileOutputStream是OutputStream的常用子类,用于把数据写入硬盘中。

核心类的核心方法:

InputStream:

int read(byte [] b, int off, int len)

read方法用于读取数据,第一个参数为byte类型的数组,用于存放读取到的数据。第二个参数为偏移量,规定读取的数据从数组的指定位置开始存放。第三个参数表示数组的长度,即read每次可读取数据的量。该方法的返回值为读取到的数据的字节数。

OutputStream:

void write(byte [] b, int off, int len)

write方法用于写入数据,第一个参数为要写入的数据,第二个参数为偏移量,规定数据从数组的指定位置开始写入,第三个参数表示要往硬盘中写入多少数据。

例子:读取文件和写入文件

import java.io.*; //导入I/O包中的类class Test{public static void main(String args[]){FileInputStream fis = null;//声明输入流引用FileOutputStream fos = null;//声明输出流引用try{//生成输入流对象,定位文件fis = new FileInputStream("F:/Android/Java4Android/32/src/a.txt");//生成byte数组存取数据byte [] b = new byte[15];//调用read方法读取数据并返回数据的大小int bLen = fis.read(b,0,b.length);//生成输出流对象,生成文件fos = new FileOutputStream("F:/Android/Java4Android/32/src/b.txt");//文件不存在会自动生成//调用write方法写入数据fos.write(b,0,bLen);}catch(Exception e){System.out.PRintln(e);}}}

 

//打印byte数组的内容for(int i = 0; i< b.length; i++){System.out.println(b[i]);}

//还原成字符串String s =new String (b);s = s.trim();//去掉字符串首尾空格和空字符System.out.println(s);

  

  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表