til: 자바에서 특정 크기의 파일 생성
이 기능을 테스트하려면 멀티파트 업로드를 트리거(또는 트리거하지)하기 위해 특정 크기의 더미 테스트 파일을 생성해야 했습니다.
처음 두 가지 요구 사항은 Junit 5TempDirectory extension1를 사용하여 답변할 수 있습니다.
다른 요구 사항은 스파스 파일로 충족될 수 있습니다.
Sparse files are files stored in a file system where consecutive data blocks consisting of all zero-bytes (null-bytes) are compressed to nothing. There is often no reason to store lots of empty data, so the file system just records how long the sequence of empty data is instead of writing it out on the storage media. This optimization can save significant amounts of storage space for other purposes.
다음 코드는 스파스 파일을 생성하고, 쓰기 위해 파일을 열고, 지정된 위치를 찾고 끝에 몇 바이트를 추가합니다.
FileChannel
클래스를 활용합니다.@Test
void example(@TempDir Path tempFolder) throws IOException {
// The sparse option is only taken into account if the underlying filesystem
// supports it
final OpenOption[] options = {
StandardOpenOption.WRITE,
StandardOpenOption.CREATE_NEW ,
StandardOpenOption.SPARSE };
final Path hugeFile = tempFolder.resolve("hugefile.txt");
try (final SeekableByteChannel channel = Files.newByteChannel(hugeFile, options)) {
// or any other size
long giB = 1024L * 1014L * 1024L;
channel.position(giB);
// Write some random bytes
final ByteBuffer buf = ByteBuffer.allocate(4).putInt(2);
buf.rewind();
channel.write(buf);
}
//Do something with my dummy file
}
실제로 디스크 공간을 할당할 필요가 없기 때문에 상대적으로 짧은 시간에 큰 스파스 파일을 만들 수 있으므로 적합합니다.
빠른 "단위"테스트를 위해.
추가 리소스:
이 기능은 아직 실험 중입니다↩.
Reference
이 문제에 관하여(til: 자바에서 특정 크기의 파일 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mikomatic/til-generate-a-file-with-specific-size-in-java-h3c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)