IO流之字节流

字节流是把数据转换成字节(byte)向文件输入输出。

类InputStream和类OutputStream是表示输入输出字节流的所有类的超类。

类FileInputStream和类FileOutputStream是字节输入输出常用的类。

write()方法和read()方法则是输入和输出的基本方法。

如:

write(int b)和read()

一个一个的字节进行输入输出

package com.test1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileFoo {
	public static void main(String[] args)throws IOException {
		FileOutputStream fos = new FileOutputStream("test1.txt");		//create FileOutputStream object
		fos.write('a');				//Write a data to a file
		fos.write('b');				//Write a data to a file
		fos.write('c');				//Write a data to a file
		fos.close();
		
		FileInputStream fis = new FileInputStream("test1.txt");			//create FileInputStream object
		int i;
		while((i=fis.read())!=-1){				//Judge whether the file is empty, if it is empty return -1
			char c = (char)i;
			System.out.print(c);
		}
		fis.close();				//close file
	}
}
write(byte [] buf)和read(byte [] buf)

一段字节进行输入输出,一次性读取时字节数组的长度要足够大

package com.test1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileRW {
	public static void main(String[] args)throws IOException {
		FileOutputStream fos = new FileOutputStream("test.txt");		//create FileOutputStream object
		String str = "abcd123";
		byte [] buf = str.getBytes();
		fos.write(buf);					//Write data to a file
		fos.close();					//close file
		
		FileInputStream fis = new FileInputStream("test.txt");			//create FileInputStream object
		byte [] buff = new byte[50];
		fis.read(buff);					//One time input to an array of bytes
		String str1 = new String(buff);	
		System.out.println(str1);
		fis.close();					//close file
	}
}
write(byte [] buf, int off, int len)和read(byte [] ,int off,int len)

从字节数组中读入len个字节到文件中或者从文件中读入len个字节到字节数组中

package com.test1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileRW {
	public static void main(String[] args)throws IOException {
		FileInputStream fis = new FileInputStream("test1_new.txt");	//create FileInputStream object
		FileOutputStream fos = new FileOutputStream("test.txt");	//create FileOutputStream object
		
		byte [] buff = new byte[50];
		int b;
		while((b=fis.read(buff,0,buff.length))!=-1)	//Judge whether the file is empty, if it is empty return -1
		{
			fos.write(buff, 0, b);			//Write data to a file
			fos.flush();
		}
		fis.close();					//close file				
		fos.close();					//close file
	}
}

类BufferedInputStream和类BufferedOutStream这两个类为字节流提供了缓冲输入的操作,

即数据先从文件或数组中进入到缓冲区,然后写入文件或读入数组。

package com.test1;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class bybufferedinputstrem {

	public static void main(String[] args) throws IOException{
		FileInputStream fis = new FileInputStream("Wildlife.wmv");
		//create BufferedInputStream object,fis is a FileInputStream object
		BufferedInputStream bis = new BufferedInputStream(fis,100000);	
		FileOutputStream fos = new FileOutputStream("1.wmv");
		//create BufferedOutputStream object,fos is a FileOutputStream object
		BufferedOutputStream bos = new BufferedOutputStream(fos,100000); 
		byte [] buf = new byte[1000];
		int i;
		while((i=bis.read(buf,0,buf.length))!=-1){
			bos.write(buf,0,i);
		}
		bos.flush();			//flush the buffer
		bos.close();
		fos.close();
		bis.close();
		fis.close();
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值