字节流(byte stream)
1、字节流的输入和输出的基础是InputStream和OutputStream这两个抽象类,字节流的输入和输出的 操作由这两个类的子类实现。
2、字节流为处理字节的输入和输出提供了方便的方法。例如使用字节流读取或写入二进制数据
3、字节流类(Byte Stream)字节流类用于向字节流读取8位二进制的字节。一般的,字节流类主要 用于读写诸如图像或声音等的二进制数据。
4、读数据的逻辑:
open a stream
while more information
read information
close the stream
5、写数据的逻辑:
open a stream
while more information
write information
close the stream
6、节点流:从特定的地方读写的流,例如:磁盘
7、过滤流:使用节点流作为输入和输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。
8、字节流最重要的两个方法:read()和write(),它们都是抽象方法,它们被派生的流类重写。要使 用流类,就必须导入java.io包。
9、InputStream中有三个基本的读方法:
abstract int read():读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流 的末尾。
int read(byte[] b):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示 读到了输入流的末尾。
int read(byte[] b,int off,int len):将数据读入一个字节数组,同时返回实际读取的字节数 。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置,len指定 读取的最大字节数。
第二个方法依靠第三个方法实现,而第三个方法依靠第一个方法来实现,所以说只有第一个read方 法时与具体的I/O设备相关的,它需要InputStream的子类来实现。
10、文件读取数据类:FileInputStream
String(byte[] bytrs,int offset,int length):将字节转化为字符串
11、读取一个文件的内容:
public static void main(String[] args)
{
InputStream is = new FileInputStream("文件地址");
byte[] buffer = new byte[200];
int length = is.read(buffer,0,buffer.length);
while(-1 != length)
{
String str = new String(buffer,0,length);
System.out.prientln(str);
}
is.close();
}
12、OutputStream
定义了流式字节输出模式的抽象类。该类的所有方法返回一个void值并且在出错情况下,引发一 个IOException异常
13、往一个文件内写内容:
public static void main(String[] args)
{
OutputStream os = new FileOutputStream("文件地址");
String str = "要写入的字符串";
byte[] buffer = str.getBytes();
os.write(buffer);
os.close();
}
14、ByteArrayInputStream 是把字节数组当成源的输入流。该类有俩个构造方法,每个构造方法需 要一个字节数组提供数据源。
1)、ByteArrayInputStream(byte array[])
2)、ByteArrayInputStream(byte array[],int start,int numBytes)
这里array[]是输入源。第二个构造方法创建了一个InputStream类,该类从字节数组的子集生成
以start指定索引的字符为起点,长度由numBytes决定
15、DataOutputStream
使用数据文件流的一般步骤:
1)、建立字节文件流对象
2)、基于字节流对象建立数据文件流对象
3)、用流对象的方法对基本类型的数据进行输入/输出 |
|