in.read(byte[] buf,int start,int size)
4)输出流基本方法out.write(byte[] buf,int start,int size)
5) InputStream、OutputStream的实现类FileOutputStream 实现了向文件中写出byte数据的方法
6)BufferedInputStream&BufferedOutputStream
这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
从应用程序中把输入放入文件,相当于将一缸水倒入到另一个缸中:
FileOutputStream--->write()方法相当于一滴一滴地把水“转移”过去
DataOutputStream-->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移”过去
BufferedOutputStream--->write方法更方便,相当于一飘一瓢先放入桶中,再从桶中倒入到另一个缸中,性能提高了
---------------------------------------------------------------------------------------------------------------------
FileInputStream常用构造方法:
public FileInputStream(String name);
FileInputStream(File file);
FileInputStream f=new FileInputStream("E:\\HQL 基础.txt");
FileInputStream f1=new FileInputStream(new File("E:\\HQL 基础.txt"));
-----------------------------------------
FileOutputStream同上
FileOutputStream f=new FileOutputStream("E:\\HQL 基础.txt");
FileOutputStream f1=new FileOutputStream(new File("E:\\HQL 基础.txt"));
package FileInputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class fileinputstream {
/**把文件作为字节流 然后输出
* @param args
* @throws IOException
* @throws IOException
* FileInputStream 为InputSteam(抽象类)的实现类 读取文件
*/
public void printHex() throws IOException{
FileInputStream f=new FileInputStream("E:\\HQL 基础.txt");//随意文件
int b;//相当于一个缓冲
int i = 0;
while((b=f.read())!=-1){
//如果为一位就第一位补0
if(b<0xf){
System.out.print("0");
}
System.out.print(Integer.toHexString(b)+" ");
if(i++%10==0){
System.out.println();
}
}
f.close();
}
/**
* 批量读取,对大文件而言效率高,也是我们最常用的读文件的方式
* @param fileName
* @throws IOException
*/
public static void printHexByByteArray(String fileName)throws IOException{
FileInputStream in =new FileInputStream(fileName);
byte[] buf=new byte[8*1024];//buf大小为8兆
/*int bytes=in.read(buf,0,buf.length);//读取文件字节放到buf中 然后返回的是字节数
int j=0;
for(int i=0;i