Java中字符流与字节流的转化
来源:互联网 发布:淘宝网哪里写招聘 编辑:程序博客网 时间:2024/06/04 18:49
在Java IO流中,基于字节操作的I/O接口有InputStream和OutputStream;基于字符操作的I/O接口有:Writer和Reader;字符与字节的转化桥梁是InputStreamReader和OutputStreamWriter.
以读取文件为例,
File file = new File("文件路径,如H:/object.txt");
将字符串以某种编码格式写入代码如下:
try { //方法一:可自选编码格式,在文件末尾写入数据 //字节流关联文件file FileOutputStream fos = new FileOutputStream(file,true); //字符流转化为字节流,编码 OutputStreamWriter osw = new OutputStreamWriter(fos,"编码格式"); //字符流读入数据 BufferedWriter bw = new BufferedWriter(osw); bw.write(str); bw.close();/* //方法二:无法选择编码格式,覆盖原内容文件 //FileWriter 继承 OutputStreamWriter,只有构造器,没有方法 FileWriter fw = new FileWriter(file); fw.write(str); fw.close();*/ } catch (IOException e) { e.printStackTrace(); }
读取文件代码如下:
try { //字节读取文件file的磁盘数据 FileInputStream fis = new FileInputStream(file); //字节转化为字符,用于print() InputStreamReader isr = new InputStreamReader(fis,"编码格式"); //字符char读取 BufferedReader br = new BufferedReader(isr); int num; char ch; while( (num = br.read()) != -1){ ch = (char) num; System.out.print(ch); System.out.print(","); } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
若文件后缀为.txt,会发现输出与输入不完全一样,是因为txt文件后自动添加文件头.
编码格式 文件头的十六进制数据 ANSI 无文件头 UTF-8 EF BB BF Unicode FF FE Unicode-big FE FF如何查看txt的文件头数据,请参考http://blog.csdn.net/skdhyrs/article/details/78240861
阅读全文
1 0
- Java中字符流与字节流的转化
- JAVA中字节与字符的转化接口
- 字符流与字节流的相互转化
- 字符与字节的转化
- Java(字节流向字符流的转化)
- Java中字节流与字符流的区别
- java中字符流与字节流的区别
- Java中字符流与字节流的区别
- java中字节流与字符流的区别详解
- java中字节流与字符流的读写方式
- 理解Java中字符流与字节流的区别
- java中字节流与字符流的区别
- JAVA中字节流与字符流的区别详解
- 理解Java中字符流与字节流的区别
- 理解java中字符流与字节流的区别
- 理解Java中字符流与字节流的区别
- 详解Java中字符流与字节流的区别
- 详解Java中字符流与字节流的区别
- noteBook2.3-C#基础第三天
- 欢迎使用CSDN-markdown编辑器
- 03 java基础语法(上)
- NDK实现毛玻璃效果完全教程
- 大数据CDH_10_01
- Java中字符流与字节流的转化
- 十大经典算法总结(Javascript描述)
- Unity游戏加载页面处理
- 欢迎使用CSDN-markdown编辑器
- ListView点击显示详情
- Linux第二章作业
- 刷题笔记:牛客字符串专项练习1
- OkHttp3
- LeetCode-4_MedianOfTwoSortedArrays-C++