打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
深入浅出javase——字节流读取中文可能出现的小问题

/*

* 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[] -- String

String ss = new String(bys); // 你好

// String ss = new String(bys, 'GBK'); // 你好

// String ss = new String(bys, 'UTF-8'); // ???

System.out.println(ss);

}

}


public class FileInputStreamDemo {

public static void main(String[] args) throws IOException {

// 创建字节输入流对象

FileInputStream fis = new FileInputStream('a.txt');

// 读取数据

// int by = 0;

// while ((by = fis.read()) != -1) {

// System.out.print((char) by);

// }

byte[] bys = new byte[1024];

int len = 0;

while ((len = fis.read(bys)) != -1) {

System.out.print(new String(bys, 0, len));

}

// 释放资源

fis.close();

}

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android上传文件到服务器
Java IO流之中文乱码
java下URL参数带中文的编码问题
(转自博客园)Java文件操作
C# byte[]与char[]、string与char[]、byte[] 与 string 互转
6、MD5加密
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服