Java에서 파일을 바이트 그룹으로 바꾸기 지식 요약 및 실례 상세 정보
키워드: 파일, 파일 흐름, 바이트 흐름, 바이트 그룹, 바이너리
요약: 최근 작업에서 직면한 수요는 http를 이용하여 2진 데이터를 서버에 대응하는 인터페이스로 전송하고userId,file(암호화 후) 등 일련의 혼합된 2진 데이터를 전송해야 한다는 것이다.본고는 자바를 사용하여 파일을 바이트 그룹으로 바꾸는 데 대한 자신의 지식 이해와 요약을 기록하는 데 목적을 둔다.
FileInputStream
FileInputStream을 사용하여 파일 읽기
File InputStream은 파일에서 정보를 읽거나 구조자가 파일 형식을 수신하거나 파일 경로를 나타내는 String 형식을 나타내는 InputStream의 하위 클래스입니다.
File file = new File("filePath");
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStreamByteArray OutputStream을 사용하여 File InputStream의 파일 데이터를 읽습니다.
ByteArray OutputStream은 메모리에 버퍼를 만드는 데 사용되며,'흐름'으로 보내는 모든 데이터는 이 버퍼에 설치됩니다.
ByteArrayOutputStream bos = new ByteArrayOutputStream(fis);
byte[] b = new byte[1024];
int len = -1;
while((len = fis.read(b)) != -1) {
bos.write(b, 0, len);
}
참고: ByteArray OutputStream의 write 방법은 세 가지 재부팅 형식이 있습니다.write(int b)
지정된 바이트 쓰기
write(byte[] b)
전체 바이트 그룹 쓰기 b
write(byte[] b, int off, int len)
바이트 그룹 b를 작성하고, b의 오프셋 아래에서 시작하여len 바이트를 기록합니다.
여기에는 두 번째 중 하나를 사용하지 않고 세 번째 종류를 사용합니다. 코드에서 매번 읽는 버퍼 b의 수량을 가져옵니다. 보통 1024(b를 정의할 때 지정한 길이를 표시하기 때문)입니다. 마지막까지 읽을 때만 1024바이트가 부족할 수도 있고 실제 읽는 바이트 수를 읽을 수도 있습니다. 그러나 버퍼를 쓸 때 쓰는 수량을 지정하지 않으면 len을 지정하지 않습니다. 그러면 전체 b를 모두 씁니다.b 중 일부만 쓰여도 1024바이트는 쓰여집니다.이로 인해 toByteArray를 사용할 때 바이트 그룹이 실제 길이가 아닙니다!
이렇게 하면 파일이 InputStream에서 ByteArray OutputStream에 기록됩니다.
ByteArray OutputStream의 toByteArray () 방법으로 파일의 바이트 그룹을 얻을 수 있습니다.
byte[] fileByte = bos.toByteArray();
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.