java怎么将二进制转化成字符串

Python053

java怎么将二进制转化成字符串,第1张

import java.io.UnsupportedEncodingExceptionimport java.util.Arrays/* * String(byte[] bytes, String charsetName):通过指定的字符集解码字节数组 * byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组 * * 编码:把看得懂的变成看不懂的 * String -- byte[] * * 解码:把看不懂的变成看得懂的 * byte[] -- String * * 举例:谍战片(发电报,接电报) * * 码表:小本子 *字符 数值 * * 要发送一段文字: *今天晚上在老地方见 * *发送端:今 -- 数值 -- 二进制 -- 发出去 *接收端:接收 -- 二进制 -- 十进制 -- 数值 -- 字符 -- 今 * *今天晚上在老地方见 * * 编码问题简单,只要编码解码的格式是一致的。 */public class StringDemo {public static void main(String[] args) throws UnsupportedEncodingException {String s = "你好"// String -- byte[]byte[] bys = s.getBytes()// [-60, -29, -70, -61]// byte[] bys = s.getBytes("GBK")// [-60, -29, -70, -61]// byte[] bys = s.getBytes("UTF-8")// [-28, -67, -96, -27, -91, -67]System.out.println(Arrays.toString(bys))// byte[] -- StringString ss = new String(bys)// 你好// String ss = new String(bys, "GBK")// 你好// String ss = new String(bys, "UTF-8")// ???System.out.println(ss) }}

private static String bytesToString(String filename) {

String myreadline = ""

try {

// 创建FileReader对象,用来读取字符流

FileReader fr = new FileReader("userinfo.txt")

// 缓冲指定文件的输入

BufferedReader br = new BufferedReader(fr)

// 定义一个String类型的变量,用来每次读取一行

while (br.ready()) {

// 读取一行

myreadline = myreadline + (myreadline.equals("")?"":"\n") + br.readLine()

// 在屏幕上输出

System.out.println(myreadline)

}

br.close()

fr.close()

} catch (IOException e) {

e.printStackTrace()

}

return myreadline

}

public static void writerFile(String fileString, String filePath) {

FileWriter fw

try {

fw = new FileWriter(filePath)

// 将缓冲对文件的输出

BufferedWriter bw = new BufferedWriter(fw)

bw.write(fileString)

bw.flush()

bw.close()

fw.close()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public static void main(String[] args) throws FileNotFoundException,

Exception {

// TODO Auto-generated method stub

String fileString = bytesToString("D:/workspace/TestStruts2/userinfo.txt")

writerFile(fileString,"D:/workspace/TestStruts2/test.txt")

}

import java.nio.charset.StandardCharsets

import java.util.Scanner

public class Convert {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in)

String x

x = sc.next()

String ZERO = "00000000"

byte[] bs = x.getBytes(StandardCharsets.UTF_8) //如果不采用默认的UTF-8格式编码,那么一个汉字相当于两个字节,一个字节就是8个二进制数(8bit)

System.out.println(bs.length+"-------------")

for (byte b : bs) {

String s = Integer.toBinaryString(b)

if (s.length() >8) {

s = s.substring(s.length() - 8)

} else if (s.length() <8) {

s = ZERO.substring(s.length()) + s

}

System.out.println(s)

}

}

}