자바 바이트 흐름 이 파일 입 출력 에서 파일 프로 세 스 분석 으로

그림 한 장,워드,rar 가방 을 복사 해 야 한다 면.바이트 흐름 으로 파일 을 읽 고 대상 폴 더 로 출력 할 수 있 습 니 다.
4M 그림 을 복사 하 는 예 를 들 면.
한 바이트 씩 읽 기:

ch = (char)System.in.read(); //      ,        int    ,      -1
복사 할 때 한 바이트,한 바이트 의 읽 기,쓰기 가 느 립 니 다.버퍼 에 사용 할 문자 배열 을 설정 하면 복사 과정 이 훨씬 빨 라 집 니 다(읽 을 때마다 바이트 가 많아 집 니 다).
읽 기 편 하고 클래스 의 이름 은 중국어 로 설명 합 니 다.

import java.io.*;
public class         {
  public static void main(String[] args) throws Exception {
    FileInputStream in=new FileInputStream("E:\\photo\\IMG.jpg");
    //FileOutputStream       ,       
    OutputStream out=new FileOutputStream("E:\\test.jpg");
    byte[] buff=new byte[1024];
    int b;
    long beginTime=System.currentTimeMillis();
    while ((b=in.read(buff))!=-1) {
      out.write(buff,0,b);
    }
    long endTime=System.currentTimeMillis();
    System.out.println("     : "+(endTime-beginTime)+"  ");
    in.close();
    out.close();
    System.out.println("    !");
  }
}
여기 설 치 된 바이트 배열 은 1024 바이트 입 니 다.복사 하 는 시간 은 한 바이트 의 복사 보다 훨씬 빠르다.

//   FileOutputStream    ,      
//write(b)     b
//write(byte[] b)          
//write(byte[] b,int off,int len)   write(byteTest,0,len)    byteTest  0     len   
//     3 
바이트 버퍼 흐름
BufferedInputStream 과 BufferedOutputStream 으로 FileInputStream 과 FileOutputStream 을 패키지 합 니 다.
읽 기 편 하고 클래스 의 이름 은 중국어 로 설명 합 니 다.

import java.io.*;
public class       {
  public static void main(String[] args) throws Exception {
    BufferedInputStream bis=new BufferedInputStream(new FileInputStream("E:\\photo\\IMG.jpg"));
    BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("E:\\test.jpg"));
    int len;
    long begintime=System.currentTimeMillis();
    while((len=bis.read())!=-1) {
      bos.write(len);
    }
    long endtime=System.currentTimeMillis();
    System.out.println("     :"+(endtime-begintime)+"  ");
    bis.close();
    bos.close();
    System.out.println("    ");
  }
}
String 클래스 의 대상 을 바이트 흐름 으로 파일 에 쓸 때

import java.io.*;
public class outFile {
  public static void main(String[] args) throws Exception {
    FileOutputStream out=new FileOutputStream("example.txt");
    String str="  ";
    byte[] b=str.getBytes();
    for(int i=0;i<b.length;i++) {
      out.write(b[i]);
    }
    out.close();
    System.out.println("    ");
  }
}
파일 을 추가 로 써 야 할 때

FileOutputStream out=new FileOutputStream("example.txt",true);
전환 흐름BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String x = in.read();InputSteamReader 와 OutputStreamReader 는 변환 흐름 이 고 전 자 는 바이트 흐름 을 문자 흐름 으로 바 꾸 고 후 자 는 문자 흐름 을 바이트 흐름 으로 바 꿉 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기