입력 스트림 출력 스트림과 byte [] 간의 관계

1. 데이터 소스

InputStream은 본질적으로 byte []이고, input은 데이터가 외부에서 메모리로 얻어지고 byte []에 캡슐화됨을 의미합니다.

하위 클래스 :
FileInputStream은 파일 (파일, 메모리에없는 데이터)에서 데이터를 가져옵니다 .ByteArrayInputStream은
메모리 (메모리에 이미 존재하는 데이터)에서 데이터를 가져옵니다.
결과적으로 InputStream 유형의 Object가 생성됩니다.

2. 코드 분석

2.1 단순히 파일 복사

    public static void main(String[] args) throws IOException {
    
    

        InputStream inputStream = new FileInputStream("D:\\DAY_WORK\\2020\\month_10\\10_月.txt");
        OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\10_copy.txt");
        byte[] bytes = new byte[inputStream.available()];

        inputStream.read(bytes);
        outputStream.write(bytes);

        inputStream.close();
        outputStream.close();
    }

2.2 1024 단위로 파일 복사

    public static void main(String[] args) throws IOException {
    
    

        InputStream inputStream = new FileInputStream("D:\\DAY_WORK\\2020\\month_10\\My Favorite 修改说明.docx");
        OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\My Favorite 修改说明copy.docx");

        byte[] bytes = new byte[1024];
        int n;
        final int end = -1;
        while (end != (n = inputStream.read(bytes))) {
    
    
            outputStream.write(bytes, 0, n);
        }

        inputStream.close();
        outputStream.close();
    }

2.3 파일 내용에 문장 추가

    public static void main(String[] args) throws IOException {
    
    

        OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\10_copy.txt", true);

        String content = "\n今天又是 nice 的一天";
        byte[] bytes = content.getBytes();

        outputStream.write(bytes);
        outputStream.close();
    }

3. outputstream과 Writer / FileWriter의 차이점

outPutStream의 단위는 바이트이고
Writer / FileWriter 의 단위 는 문자로 인코딩 문제가 있습니다.

추천

출처blog.csdn.net/leinminna/article/details/111251558