Java UTF File Write writeUTF8(DataOutput buf, String value)

Here you can find the source of writeUTF8(DataOutput buf, String value)

Description

Writes an UTF8 string to a byte buffer.

License

MIT License

Parameter

Parameter Description
buf The byte buffer to write too
value The string to write

Exception

Parameter Description

Declaration

public static void writeUTF8(DataOutput buf, String value) throws IOException 

Method Source Code

//package com.java2s;
/*//from   w ww .  j  a  va  2 s .  c  om
 * This file is part of Flow Networking, licensed under the MIT License (MIT).
 *
 * Copyright (c) 2013 Spout LLC <http://www.spout.org/>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

import java.io.DataOutput;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class Main {
    /**
     * Writes an UTF8 string to a byte buffer.
     *
     * @param buf The byte buffer to write too
     * @param value The string to write
     * @throws java.io.IOException If the writing fails
     */
    public static void writeUTF8(DataOutput buf, String value) throws IOException {
        final byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
        if (bytes.length >= Short.MAX_VALUE) {
            throw new IOException(
                    "Attempt to write a string with a length greater than Short.MAX_VALUE to ByteBuf!");
        }
        // Write the string's length
        writeVarInt(buf, bytes.length);
        buf.write(bytes);
    }

    /**
     * Writes an integer into the byte buffer using the least possible amount of bits.
     *
     * @param buf The byte buffer to write too
     * @param value The integer value to write
     */
    public static void writeVarInt(DataOutput buf, int value) throws IOException {
        int part;
        while (true) {
            part = value & 0x7F;
            value >>>= 7;
            if (value != 0) {
                part |= 0x80;
            }
            buf.writeByte(part);
            if (value == 0) {
                break;
            }
        }
    }
}

Related

  1. writeFileUTF(String nom)
  2. writeStringAsUTFByteArrayToDataOutput(final DataOutput out, final String str)
  3. writeToFile(File outputFile, String content)
  4. writeToFile(String outputFile, String contents)
  5. writeToFile(String outputFilePath, String generated)
  6. writeUTF8(final String filePath, final String content)
  7. writeUTF8(OutputStream out, String str)
  8. writeUtf8String(final DataOutputStream out, final String str)
  9. writeUTF8WithLength(OutputStream out, String str)