将文件读取为十六进制,然后从十六进制字符串再次写入

时间:2014-12-01 14:16:55

标签: java

如何阅读任何文件,如图像,视频,文本文件....等

作为十字String然后再将这些String写在其他地方,但能够将文件作为原始文件打开

我正在寻找代码??

提前致谢

2 个答案:

答案 0 :(得分:2)

将文件读入字节数组并将其转换为十六进制

StringBuilder result = new StringBuilder();
            for (byte b : bytes) {
                result.append(String.format("%02x", b));
            }
 result.toString();

对十六进制进行任何修改,然后使用此方法再次保存

public static byte[] hexStringToByteArray(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i += 2) {
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                + Character.digit(s.charAt(i + 1), 16));
    }
    return data;
}

此方法返回byte数组,以便您可以使用此代码编写这些字节

RandomAccessFile file = new RandomAccessFile([Any file Name with extention], "rw");

file.write(bytes);

file.close();

答案 1 :(得分:-1)

使用format()方法。

以字节形式读取文件,然后将其转换为字节。

String.format("%02x", byteFromFile);

迭代它直到读取所有字节,然后将其添加到StringBuilder

StringBuilder hexbyteString;

for(byte myfile : filebyte) {
        hexbyteString.append(String.format("%02x", myfile));
    }
    return hexbyteString.toString();