• Intro Headers Instructions Macros Commands
Fork me on GitHub
    • Getting Started
      • How to install bnd
      • Guided Tour
      • Guided Tour Workspace & Projects
      • FAQ - Frequently Asked Questions
    • Concepts and Practices
      • Introduction
      • Concepts
      • Best practices
    • Build and Development
      • Project Setup
      • Generating JARs
      • Versioning
      • Baselining
      • Service Components
      • Metatype
      • Contracts
      • Bundle Annotations
      • Accessor Properties
      • SPI Annotations
    • Dependency and Launching
      • Resolving Dependencies
      • Launching
      • Startlevels
    • Testing
      • Testing
      • Testing with Launchpad
    • Packaging and Distribution
      • Packaging Applications
      • JPMS Libraries
      • Wrapping Libraries to OSGi Bundles
    • Documentation and Tools
      • Generating Documentation
      • Commands
      • For Developers
      • Templates for Workspaces
      • Tips for Windows users
      • Tools bound to bnd
    • Reference Material
      • Reference
      • Headers
      • Instruction Reference
      • Instruction Index
      • Macro Reference
      • Macro Index
      • Plugins
      • External Plugins
    • Configuration and Troubleshooting
      • Settings
      • Errors
      • Warnings
  • bytes ( ';' LONG )*
    Macro

    Format bytes

    /**
     * Format bytes
     */
    public String _bytes(String[] args) {
        try (Formatter sb = new Formatter()) {
            for (int i = 0; i < args.length; i++) {
                long l = Long.parseLong(args[1]);
                bytes(sb, l, 0, new String[] {
                    "b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb", "Bb", "Geopbyte"
                });
            }
            return sb.toString();
        }
    }
    
    private void bytes(Formatter sb, double l, int i, String[] strings) {
        if (l > 1024 && i < strings.length - 1) {
            bytes(sb, l / 1024, i + 1, strings);
            return;
        }
        l = Math.round(l * 10) / 10;
        sb.format("%s %s", l, strings[i]);
    }
    
Search
    • Home