InputStream抽象类
InputStream主要方法如下:
int read():读取一个字节,返回0-255范围内的int字节值。如果因为已经到达流末尾,而且,没有可用的字节,则返回值-1。
int read(byte b[ ]):读取多个字节,数据放到字节数组b中,返回值为时机读取的字节的数量,如果因为已经到达末尾,而且没有可用的字节,则返回值-1。
int read(byte b[ ],int off,int len):最多读取len个字节,数据放到以下标off开始字节数组b中,将读取的第一个字节存储在元素b[off]中,下一个存储在b[off+1]中,依次类推。返回值为实际读取的字节的数量,如果因为已经到达流末尾,而且没有可用的字节,则返回值-1。
void close():流操作完毕后必须关闭。
OutputStream抽象类
OutputStream主要方法如下:
void write(int b):将b写入带输出流,b是int类型占有32位,写入过程是写入b的8个低位,b的24个高位将被忽略。
void write(byte b[ ]):将b.length个字节从指定字节数组b写入到输出流。
void write(byte b[ ],int off,int len):把字节数组b中从下标off开始,长度为len的字节写入到输出流。
void flush():刷空输出流,并输出所有被缓存的字节。由于某些流支持缓存功能.该方法将把缓存中所有内存强制输出到流中。
void close():流操作完毕后必须关闭。
代码案例:文件复制
FileInputStream构造方法主要有:
FileInputStream(String name):创建FileInputStream对象,name是文件名。如果文件不存在,则抛出FileNotFoundException异常。
FileInputStream(File file):通过File对象创建FileInputStream对象。如果文件不存在则抛出
FileNotFoundException异常。
FileOutputStream构造方法主要有:
FileOutputStream(String name):通过指定name文件名创建FileOutputStream对象。如果name文件存在,但如果是一个目录或文件无法打开则抛出FileNotFoundException异常。
FileOutputStream(String name,boolean append):通过指定name文件名创建FileOutputStream对象,append参数如果为true,则将字节写入文件末尾处,而不是文件开始处。如果name文件存在,但如果是一个目录或文件无法打开则抛出FileNotFoundException异常。
FileOutputStream(File file):通过File对象创建FileOutputStream对象。如果file文件存在,但如果是一个目录或文件无法打开则抛出FileNotFoundException异常。
FileOutputStream(File file,boolean append):通过File对象创建FileOutputStream对象。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
//实现IO文件下index.txt复制到TestDir文件下
public class FileIo {
public static void main(String[] args) {
//使用自动资源管理文件输入流FileInputStream和文件输出流
try (FileInputStream in = new FileInputStream("./io/index.txt");//文件输入流
FileOutputStream out = new FileOutputStream("./TestDir/index.txt");//文件输出流
){
//定义字节流缓冲区
byte[] b = new byte[10];
//读取一次
int len = in.read(b);
while (len != -1) {
//从缓冲区取出数据到String
String str = new String(b);
//打印str
System.out.println(str);
//数据写入到输出流中
out.write(b,0,len);
//再次读取
len = in.read(b);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}