/* * This file is part of the Jikes RVM project (http://jikesrvm.org). * * This file is licensed to You under the Eclipse Public License (EPL); * You may not use this file except in compliance with the License. You * may obtain a copy of the License at * * http://www.opensource.org/licenses/eclipse-1.0.php * * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. */ package org.jikesrvm.util; public class StringUtilities { /** * Convert a <code>String</code> filename to a byte array using the * deprecated ascii String method for cases where passing it through * a character set converter is too heavyweight. Allocates an * additional null-terminator byte so that the resulting byte array * can be passed to native C functions. * * @param fileName File name * @return Byte-array representation */ @SuppressWarnings("deprecation") public static byte[] stringToBytesNullTerminated(String fileName) { byte[] asciiName = new byte[fileName.length() + 1]; // +1 for \0 terminator fileName.getBytes(0, fileName.length(), asciiName, 0); return asciiName; } /** * Convert a <code>String</code> filename to a byte array using the * deprecated ascii String method for cases where passing it through * a character set converter is too heavyweight. * * @param fileName File name * @return Byte-array representation */ @SuppressWarnings("deprecation") public static byte[] stringToBytes(String fileName) { byte[] asciiName = new byte[fileName.length()]; fileName.getBytes(0, fileName.length(), asciiName, 0); return asciiName; } /** * Convert a byte array to a <code>String</code> assuming the ASCII * character set, for use in cases (such as early in the boot process) * where character set conversion is unavailable or inadvisable. * * @param val Byte array to convert * @return The resulting string */ public static String asciiBytesToString(byte[] val) { return asciiBytesToString(val, 0, val.length); } /** * Convert a byte array to a <code>String</code> assuming the ASCII * character set, for use in cases (such as early in the boot process) * where character set conversion is unavailable or inadvisable. * * @param val Byte array to convert * @param start Start the string at this byte * @param length Use 'length' bytes * @return The resulting string */ @SuppressWarnings("deprecation") public static String asciiBytesToString(byte[] val, int start, int length) { return new String(val, 0, start, length); } }