InputStream抽象类和OutputStream抽象类

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();
		}
	}

}

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值