java--字节流-(二)

java--字节流-(二)

一、字节流

 

  • 字节流主要是操作byte(字节)的类型数据:

 

  1. 字节输出流:OutputStream
  2. 字节输入流:InputStream

 

二、OutputStream常用方法

 

  • void flush() throws IOException:清空缓冲区
  • abstract void close() throws IOException:关闭输出流
  • void write(int c) throws IOException:将一个字节写到输出流中。
  • void write(byte[] b) throws IOException:将一个byte数组写出。
  • void write(byte[] b,int off,int len) throws IOException:将字节数组从off位置开始,长度为len的字节写入到输出流中。
  • 以其子类FileOutputStream来实例化OutputStream对象

 

 

  1. FileOutputStream(File/String file)  throws FileNotFoundException创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 
  2. FileOutputStream(File/String file, boolean append)   throws FileNotFoundException创建一个向指定 File 对象表示的文件中写入数据的文件输出流 

 

OutputStream实例

package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class OutputStreamDemo {
	public static void main(String[] args) throws IOException {
		
		//1.找到流的目标
		String filename = "stream.txt";
		
		//2. 创建输出流的管道,并连接上目标l,os就是输出管道
		OutputStream os = new FileOutputStream(filename,true);
		
		//3. 输出操作
		
		os.write('\n');
		for (int i =65; i < 91; i++) {
			os.write(i);
		}
		
		
		String  data = "cditcast";//程序提供的数据
		
		byte[] b= data.getBytes();//得到字节类型的数据
		
		os.write(b);
		
		os.write('\n');
		os.write(b,2,2);//得到 "cditcast"的 "it"
		
		//4. 关闭操作
		os.close();//字节流没有使用缓冲区,
		
	}
}

 

三、InputStream常用方法

 

 

  • int available() throws IOException:文件大小
  • abstract void close() throws IOException:关闭流
  • int read() throws IOException:从输入流中读取单个字节,返回该字节。
  • int read(byte[] b) throws IOException:从输入流中读取b.length个字节存储在字节数组b中,返回实际读取的字节数。

 

 

  1. 直到read(byte[] b)方法返回-1表示输入流的结束。

 

 

  • 以其子类FileInputStream来实例化InputStream对象

 

 

 

  1. FileInputStream(File/String file) throws FileNotFoundException  创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 

 

 

InputStream实例

package io;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputStreamDemo {
	public static void main(String[] args) throws IOException {
		
		//1,找到 数据源
		File src = new File("day21.txt");
		
		//2. 创建输入流的管道,并和源连接上
		
		InputStream is = new FileInputStream(src);
		
		//3. 读取操作
		
		
		/*for (int i = 0; i < 100; i++) {
			System.out.println((char)is.read());
		}*/
		
		//存储读入数据的缓冲区
		byte[] buff = new byte[1024];//定义一个1024个字节的缓冲区
		
		int len = 0;//表示这一次,读了多个各字节,  若len == -1表示读完了
		while((len= is.read(buff)) != -1){
			//String(byte[] bytes, int offset, int length)  构造一个新的 String。
			
			//去缓冲区获取数据
			String data = new String(buff,0,len);
			System.out.println(data);
			System.out.println("========================================");
		}
		
		//4.关闭操作
		is.close();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值