URL에서 로컬 파일로 읽은 바이트를 작성하기 위해 FileOutputStream 클래스의 write() 메서드를 사용합니다. 예를 들어 2KB 파일을 다운로드하려면 범위 0 — 1024 및 1024 ~ 2048을 사용할 수 있습니다. HTTP Post 메서드를 사용하여 서버 측 리소스로 콘텐츠를 보내야 합니다. 파일 데이터와 키/값 쌍의 컬렉션을 하나의 FormData 개체에 결합해야 하기 때문에 까다로운 부분은 HTTP 요청 본문 콘텐츠를 생성하는 것입니다. 다음 코드 조각에는 예제 솔루션이 표시됩니다. 위의 코드에서 22~47줄은 파일 처리를 처리하고 48~65줄은 양식 처리를 처리합니다. MultipartReaderHTTP 요청 본문에서 섹션을 읽으면 요청 콘텐츠가 구문 분석되어 실제 디스크(파일) 및 메모리(양식 데이터)에 저장됩니다. 여기서 일어나는 일은 URLConnection을 특정 범위의 파일 바이트를 요청하도록 구성했다는 것입니다. 범위는 마지막으로 다운로드한 바이트에서 시작하여 원격 파일 크기에 해당하는 바이트로 끝납니다. 각 HttpResponseBodyPart를 메모리에 누적하는 대신 FileChannel을 사용하여 로컬 파일에 바이트를 직접 작성합니다. getBodyByteBuffer() 메서드를 사용하여 ByteBuffer를 통해 본문 부품 콘텐츠에 액세스합니다. 미러를 사용하여 릴리스 빌드를 다운로드하는 것이 좋지만 기본 배포 디렉터리에서 다운로드한 서명을 사용하여 다운로드한 파일의 무결성을 확인해야 합니다.
최근 릴리스(48시간)는 아직 미러에서 제공되지 않을 수 있습니다. 파일을 다운로드하기 위해 HTTP Get 요청을 한 다음 응답 내용을 실제 파일로 복사할 수 있는 메모리 스트림으로 읽습니다. 다음 코드 조각에는 예제가 표시됩니다. 줄 14와 15는 파일 콘텐츠에서 ByteArrayContent 개체를 만들고 ContentType 헤더를 „다중 파트/양식 데이터„로 설정합니다. 참고: 파일이 양식에 포함된 경우 enctype 특성은 항상 „다중 파트/양식 데이터„여야 하며, 이 특성은 양식이 다중 부분 MIME 메시지로 전송되도록 지정합니다. ContentType이 설정되지 않은 경우 기본적으로 응용 프로그램/json이 됩니다. IO 작업에 매우 많이 사용되는 또 다른 라이브러리는 아파치 커먼스 IO입니다. Javadoc에서 일반 파일 조작 작업에 사용되는 FileUtils라는 유틸리티 클래스가 있음을 알 수 있습니다.
게시물은 이미 조금 오래되었지만 http 스트림에서 파일 스트림으로의 ‚CopyToAsync‚는 매우 우아합니다! URL에서 파일을 읽으려면 URL 스트림에서 새 ReadableByteChannel을 만듭니다: 16줄은 양식 개체에 파일 콘텐츠를 추가하고 키를 „파일„로 설정합니다. 여러 파일이 양식에 포함된 경우 키가 다를 수 있습니다. 응용 프로그램이 다른 시스템과 통신해야 하는 경우 응용 프로그램이 백 엔드에서 HttpClient를 사용하여 다른 시스템으로 데이터를 보내고 데이터를 수신하는 것이 일반적입니다. Microsoft 문서의 이 문서를 기반으로 HTTP 요청을 보내고 HTTP 응답을 받는 것은 간단합니다.