javaIO 字节流

1.字节流
 1)InputStream、OutputStream(抽象类)
    InputStream抽象了应用程序读取数据的方式
    OutputStream抽象了应用程序写出数据的方式 
 2)EOF = End   读到-1就读到结尾
 3)输入流基本方法
   int  b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF
   in.read(byte[] buf) 

   in.read(byte[] buf,int start,int size)

4)输出流基本方法
  out.write(int b)  写出一个byte到流,b的低8位
  out.write(byte[] buf)将buf字节数组都写入到流

  out.write(byte[] buf,int start,int size)

 5) InputStream、OutputStream的实现类
FileInputStream--->具体实现了在文件上读取数据

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



你可能感兴趣的:(Java,IO,java,io)