바이트 출력, 입력 스트림의 OutputStream,의 InputStream

@

바이트 출력 스트림의 OutputStream

공극 확대 ()는
출력 스트림을 방출 스트림과 연관된 시스템 자원을 닫는다.

보이드 플러시 ()
이 출력 스트림을 플래시 문자 스트림 작성에 유효한 임의의 버퍼링 된 출력을 강제 바이트

보이드 쓰기 (바이트 [] b)
지정된 바이트 배열에서 출력 스트림에 기록 b.length를 바이트.

보이드 쓰기 (바이트 [] B, , INT LEN 오프 INT)
이 출력 스트림에 기록 오프 오프셋 len 바이트에서 시작하여 지정된 바이트 배열.

추상적 무효 쓰기 (INT 나) 바이트 쓰기

    OutputStream os = new FileOutputStream("hello.txt");
    os.write("good".getBytes());
    byte[] bys = {97,98,99,100};
    os.write(bys, 1, 2);
    os.write(100);
    os.flush();
    os.close();

// 输出结果 hellowordbcd

FileOutputStream에 (파일 파일)
출력 스트림에 지정된 파일 객체에 의해 표현 된 데이터 파일을 기록하는 파일을 생성한다.

FileOutputStream에 (파일 파일 부울 APPEND)는
출력 스트림에 지정된 파일 객체에 의해 표현 된 데이터 파일을 기록하는 파일을 생성한다.

FileOutputStream에 (문자열 이름)
출력 파일 스트림의 지정된 이름의 파일에 쓰기 데이터를 작성합니다.

FileOutputStream에 (문자열 이름, 부울 APPEND)는
출력 파일 스트림에서 지정된 이름의 파일로 기록 데이터를 생성한다.

바인딩 IO는 서면 예외 처리 스트림

    System.out.println("Start");
    try (OutputStream os = new FileOutputStream("Test.txt");
        Scanner input = new Scanner(System.in);
            ){
        os.write("HelloWorld".getBytes());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("End");

바이트의 입력 스트림의 InputStream

메소드의 개요

사용할 INT ()는
다시 이러한 입력 방식의 바이트 스트림을 추정 판독을 차단하지 않고 입력 스트림을 호출 (또는 스킵).
공극 닫기 ()
이 입력 스트림 스트림과 연관된 시스템 자원을 닫는다.
무효 표시 (INT는의 readlimit는)
이 입력 스트림의 현재 위치에 마크.
부울 markSupported ()
입력 스트림이 mark reset 메소드를 지원하고있는 경우.
추상 INT 읽기 ()는
입력 스트림에서 다음 바이트의 데이터를 읽는다.

  **特点:** 
      1.表示一次性读取一个字节
      2.每读取一个字节,那么返回的实际读取的内容
      3.读取一个字节完毕,会自动等待读取下一个字节,类似迭代器的 cursor
      4.读取到文件末尾返回 -1

INT는 (바이트 [] b) 판독
입력 스트림의 바이트의 특정 번호를 판독하고, 버퍼 배열 B에 저장한다.
INT는 (바이트 [] B, 판독 , INT는 len 오프 INT)
바이트 배열로 판독되는 입력 len 바이트까지의 데이터 스트림.
보이드 리셋 ()
이 입력 스트림 마크 방법의 최종 위치에 재배치이 스트림 불렸다.
길이 (길이, N)는 이동
스킵 및 N 바이트의 입력 데이터 흐름을 폐기한다.

파일 -> FileInputStream의 입력 스트림 메모리
메모리 -> 파일 출력 스트림의 PrintStream

주 :
1. 파일 출력 스트림이 자동으로 생성되어 존재하지 않지만, 입력 스트림 파일이 존재해야하는 경우, 그렇지 않으면 FileNotFoundException이 발생합니다
중간은 각 바이트가 캐스팅 않았다고 생각하면, (2)이 하나의 바이트를 읽어 그것은 왜곡 될 수 있습니다

INT 읽기 (바이트 [] b)

외부로부터 바이트 배열의 내용을 판독 일회용

2. 각 한 번 읽어 실제로 읽어 길이를 반환

3. 말에 파일을 읽기 -1

4.마다 판독 포인터 바이트 어레이 부 후퇴

참고 :

각각의 판독 범위를 확대하지만, 왜곡이 여전히 존재하므로, 바이트 스트림은 바이트 또는 바이트 배열을 판독하지만 GBK 또는 UTF-8 인코딩 테이블은 중국 두세 바이트를 나타내는 반면, 확실히 왜곡 가능하므로 바이트 스트림 처리 중국어 권장되지 않는다.

    InputStream is = new FileInputStream("d:\\test.txt");
    byte[] bys = new byte[1024];
    int len = 0;
    while ((len = is.read(bys)) != -1) {
        System.out.print(new String(new String(bys, 0, len)));
    }

+ 출력 스트림 바이트의 바이트의 입력 스트림, 복사 파일

test.java -> TEST.TXT

데이터 소스 : test.java

목적지 : TEST.TXT

방향 :

파일 -> 메모리 FileInputStream에

메모리 -> 파일 FileOutputStream에

복사 모드 :

일회용 복사 바이트

바이트 배열 2. 일회용 사본

일회용 복사 바이트

/*
 * 功能: 一次性拷贝一个字节拷贝文件
 * 返回值类型 : void
 * 参数列表: String srcFileName, String descFileName
 * 方法名: copy
 */
public static void copy(String srcFileName, String descFileName) {
    FileInputStream fis = null;
    FileOutputStream fos = null;
    try {
        fis = new FileInputStream(srcFileName);
        fos = new FileOutputStream(descFileName);

        int by = 0;
        while ((by = fis.read()) != -1) {
            fos.write(by);
            fos.flush();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (fos != null) {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}

바이트 배열 2. 일회용 사본

/*
 * 功能: 一次性拷贝一个字节数组拷贝文件
 * 返回值类型 : void
 * 参数列表: File srcFile, File descFile
 * 方法名: copy
 */
public static void copy(File srcFile, File descFile, int capacity) {
    try (FileInputStream fis = new FileInputStream(srcFile);
            FileOutputStream fos = new FileOutputStream(descFile);) {
        byte[] bys = new byte[capacity];
        int len = 0;

        while ((len = fis.read(bys)) != -1) {
            fos.write(bys, 0, len);
            fos.flush();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } 
} 

추천

출처www.cnblogs.com/zhiwenxi/p/11389291.html