Java 将二进制文件从字符串写入文件
我的代码中有一个字符串,它有一堆0和1。现在我想用这个字符串创建一个文件,里面的位是这个字符串的字符。如何执行此操作?此函数将二进制字符串解码为字节数组:Java 将二进制文件从字符串写入文件,java,string,algorithm,binary,Java,String,Algorithm,Binary,我的代码中有一个字符串,它有一堆0和1。现在我想用这个字符串创建一个文件,里面的位是这个字符串的字符。如何执行此操作?此函数将二进制字符串解码为字节数组: static byte[] decodeBinary(String s) { if (s.length() % 8 != 0) throw new IllegalArgumentException( "Binary data length must be multiple of 8"); byte[] data
static byte[] decodeBinary(String s) {
if (s.length() % 8 != 0) throw new IllegalArgumentException(
"Binary data length must be multiple of 8");
byte[] data = new byte[s.length() / 8];
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '1') {
data[i >> 3] |= 0x80 >> (i & 0x7);
} else if (c != '0') {
throw new IllegalArgumentException("Invalid char in binary string");
}
}
return data;
}
此函数将二进制字符串解码为字节数组:
static byte[] decodeBinary(String s) {
if (s.length() % 8 != 0) throw new IllegalArgumentException(
"Binary data length must be multiple of 8");
byte[] data = new byte[s.length() / 8];
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '1') {
data[i >> 3] |= 0x80 >> (i & 0x7);
} else if (c != '0') {
throw new IllegalArgumentException("Invalid char in binary string");
}
}
return data;
}
查看诸如AND、OR、SHR和SHL之类的运算符。除此之外,你在问什么?如果您要求的是基础教程,但这不是合适的地点,请查看诸如AND、OR、SHR和SHL之类的操作员。除此之外,你在问什么?如果你想要一个基础教程,这不是合适的地方,@Masious它拒绝包含不能被8整除的位数的字符串,因为你不能在文件中表示这些字符串,因为文件是一个整数字节长,每个字节是8位。但我还是需要把它放在我的文件中。我应该在字符串的开头添加一些“0”吗?@Masious您当然可以,但是转换是有损的,因为它没有完全保留原始字符串。@Masious拒绝包含不可被8整除的位数的字符串,因为您不能在文件中表示这些位数,因为文件的长度是整字节,每个字节是8位,但我还是要把它放到我的文件里。我应该在字符串的开头添加一些“0”吗?@Masious当然可以,但是转换是有损的,因为它不能完全保留原始字符串。