> Java > java지도 시간 > Java에서 바이트를 사람이 읽을 수 있는 형식으로 변환하는 방법은 무엇입니까?

Java에서 바이트를 사람이 읽을 수 있는 형식으로 변환하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-02 12:09:15
원래의
293명이 탐색했습니다.

How to Convert Bytes to Human-Readable Format in Java?

Java에서 바이트 크기를 사람이 읽을 수 있는 형식으로 변환하는 방법

사람이 읽을 수 있는 바이트 크기 표현을 결정하는 것은 다양한 컴퓨팅 애플리케이션의 일반적인 요구 사항입니다. Java는 다음 방법을 사용하여 이 변환을 수행하는 편리한 방법을 제공합니다.

SI (1 k = 1,000)

다음 방법은 국제 시스템을 사용하여 바이트 크기를 사람이 읽을 수 있는 형식으로 변환합니다. 단위(SI):

public static String humanReadableByteCountSI(long bytes) {
    if (-1000 < bytes && bytes < 1000) {
        return bytes + " B";
    }
    CharacterIterator ci = new StringCharacterIterator("kMGTPE");
    while (bytes <= -999_950 || bytes >= 999_950) {
        bytes /= 1000;
        ci.next();
    }
    return String.format("%.1f %cB", bytes / 1000.0, ci.current());
}
로그인 후 복사

2진수(1 Ki = 1,024)

이진 접두사가 선호되는 시나리오의 경우 다음 방법으로 변환을 제공합니다.

public static String humanReadableByteCountBin(long bytes) {
    long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
    if (absB < 1024) {
        return bytes + " B";
    }
    long value = absB;
    CharacterIterator ci = new StringCharacterIterator("KMGTPE");
    for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >>> i; i -= 10) {
        value >>>= 10;
        ci.next();
    }
    value *= Long.signum(bytes);
    return String.format("%.1f %ciB", value / 1024.0, ci.current());
}
로그인 후 복사

출력 예시

제공된 코드 조각은 다음 예시 출력을 생성합니다.

SI     BINARY
0:        0 B        0 B
27:       27 B       27 B
999:      999 B      999 B
1000:     1.0 kB     1000 B
1023:     1.0 kB     1023 B
1024:     1.0 kB    1.0 KiB
1728:     1.7 kB    1.7 KiB
110592:   110.6 kB  108.0 KiB
7077888:     7.1 MB    6.8 MiB
452984832:   453.0 MB  432.0 MiB
28991029248:    29.0 GB   27.0 GiB
1855425871872:     1.9 TB    1.7 TiB
9223372036854775807:     9.2 EB    8.0 EiB   (Long.MAX_VALUE)
로그인 후 복사

위 내용은 Java에서 바이트를 사람이 읽을 수 있는 형식으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿