java之将字节数组流转化为字符流来读取
来源:互联网 发布:淘宝省钱机器人有诈吗 编辑:程序博客网 时间:2024/06/05 14:22
1 读取文件时,如果读取的文件内容为字节数组了。可以还想要将字节数组来转化为readLine的方式来读取。就需要通过字符流来读取了。想要通过readLine来读取,就需要BufferedReader来读取。但是有一个类InputStreamReader就是讲字节数组流转化为字符流。这样就可以将已经读取好的字节数组流转化为字符流了。
如:public void testStreamToReader(String fileString){
try {
FileInputStream fileInputStream=new FileInputStream(new File(fileString));
byte[] bytes=new byte[1024];
int num=-1;
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
while((num=fileInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=byteArrayOutputStream.toByteArray();
System.out.println(bytes_.length);
String neirong__=new String(bytes_,"UTF-8");
bytes_=neirong__.getBytes();
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes_);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(byteArrayInputStream));//这就是将字节数组流转化为字符流来使用了。
String neirong_=null;
while((neirong_=bufferedReader.readLine())!=null){
String neirong=neirong_;
System.out.println(neirong);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解析:InputStreamReader类就可以满足,将字节数组流转化为字符流来使用。这样就可以使用readLine方法了。
2 如果需要解析的文件中带有中文,则解析时需要先解析为字节数组,然后通过字节数组转化为字符串,然后通过字符串再转化为字节数组,这样通过InputStreamReader将字节数组流转化为字符流,就可以一行一行的来解析了,也可以解析包括中文。
如:public void testStreamToReader(String fileString){
try {
FileInputStream fileInputStream=new FileInputStream(new File(fileString));
byte[] bytes=new byte[1024];
int num=-1;
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
while((num=fileInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=byteArrayOutputStream.toByteArray();
System.out.println(bytes_.length);
String neirong__=new String(bytes_,"UTF-8");//先转为字符,字符集为UTF-8
bytes_=neirong__.getBytes()//在转化为字符,这样就能解析中文了。
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes_);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(byteArrayInputStream));//这就是将字节数组流转化为字符流来使用了。
String neirong_=null;
while((neirong_=bufferedReader.readLine())!=null){
String neirong=neirong_;
System.out.println(neirong);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如:public void testStreamToReader(String fileString){
try {
FileInputStream fileInputStream=new FileInputStream(new File(fileString));
byte[] bytes=new byte[1024];
int num=-1;
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
while((num=fileInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=byteArrayOutputStream.toByteArray();
System.out.println(bytes_.length);
String neirong__=new String(bytes_,"UTF-8");
bytes_=neirong__.getBytes();
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes_);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(byteArrayInputStream));//这就是将字节数组流转化为字符流来使用了。
String neirong_=null;
while((neirong_=bufferedReader.readLine())!=null){
String neirong=neirong_;
System.out.println(neirong);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解析:InputStreamReader类就可以满足,将字节数组流转化为字符流来使用。这样就可以使用readLine方法了。
2 如果需要解析的文件中带有中文,则解析时需要先解析为字节数组,然后通过字节数组转化为字符串,然后通过字符串再转化为字节数组,这样通过InputStreamReader将字节数组流转化为字符流,就可以一行一行的来解析了,也可以解析包括中文。
如:public void testStreamToReader(String fileString){
try {
FileInputStream fileInputStream=new FileInputStream(new File(fileString));
byte[] bytes=new byte[1024];
int num=-1;
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
while((num=fileInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=byteArrayOutputStream.toByteArray();
System.out.println(bytes_.length);
String neirong__=new String(bytes_,"UTF-8");//先转为字符,字符集为UTF-8
bytes_=neirong__.getBytes()//在转化为字符,这样就能解析中文了。
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes_);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(byteArrayInputStream));//这就是将字节数组流转化为字符流来使用了。
String neirong_=null;
while((neirong_=bufferedReader.readLine())!=null){
String neirong=neirong_;
System.out.println(neirong);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
阅读全文
0 0
- java之将字节数组流转化为字符流来读取
- 字节流转化为字符流输出
- java 之 IO 输入之 将字节流转换成字符流 然后实现一行字符串的读取
- java 字节流转字符流
- Java将流转化为文件
- Java 字节流、字符流转换
- Java字符流与字节流转换
- 字节流转字符流
- 字节流转字符流
- Java字节字符流转换
- Java IO流 将字节流转换成字符流在转换成缓冲流
- 将流转化为字符串
- 将读取的图片的InputStream流转为字节流
- 将读取的图片的InputStream流转为字节流
- 将字节流转换成字符流详细例子
- java 输入流转字节数组
- 字节流转换字符流
- 字节流转换成字符流
- 在Eclipse中创建Django项目
- 计算机视觉与深度学习(11)
- Linux配置浮动IP实现WEB高可用
- 《Java 编程技巧1001条》第391条 在数组中查找一指定值
- 解决win7下安装oracle 10g出现蓝屏问题
- java之将字节数组流转化为字符流来读取
- PCA详解
- Pageable接口
- 网络布局
- fireworks常用快捷键
- 百度配置管理disconf配置文件
- 谈谈App混合开发
- 自动驾驶
- [Leetcode] 549. Binary Tree Longest Consecutive Sequence II 解题报告