摘要:本文主要向大家介绍了JAVA语言中字符流的写法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言中字符流的写法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
import java.io.*; <em>/** </em><em> * </em><em>字符流 </em><em> </em><em>1) </em><em>编码问题 </em><em> </em><em>2)</em><em>认识文本和文本文件 </em><em> </em><em>java</em><em>的文本</em><em>(char)</em><em>是</em><em>16</em><em>位无符号整数,是字符的</em><em>unicode</em><em>编码(双字节编码</em><em>) </em><em> </em><em>文件是</em><em>byte byte byte ...</em><em>的数据序列 </em><em> 文本文件是文本</em><em>(char)</em><em>序列按照某种编码方案</em><em>(utf-8,utf-16be,gbk)</em><em>序列化为</em><em>byte</em><em>的存储结果 </em><em> </em><em>3)</em><em>字符流</em><em>(Reader Writer)----></em><em>操作的是文本文本文件 </em><em> 字符的处理,一次处理一个字符 </em><em> 字符的底层任然是基本的字节序列 </em><em> 字符流的基本实现 </em><em> </em><em>InputStreamReader </em><em>完成</em><em>byte</em><em>流解析为</em><em>char</em><em>流</em><em>,</em><em>按照编码解析 </em><em> </em><em>OutputStreamWriter </em><em>提供</em><em>char</em><em>流到</em><em>byte</em><em>流,按照编码处理 </em><em> </em><em> </em><em> </em><em>*/ </em>public class IsrAndOswDemo { public static void main(String[] args)throws IOException { FileInputStream in = new FileInputStream("C:\\Users\\hasee\\Desktop\\demo\\字符流读.txt"); InputStreamReader isr = new InputStreamReader(in,"GBK");//默认项目的编码,操作的时候,要写文件本身的编码格式 FileOutputStream out = new FileOutputStream("C:\\Users\\hasee\\Desktop\\demo\\字符流写.txt"); OutputStreamWriter osw = new OutputStreamWriter(out,"GBK"); /*int c ; while((c = isr.read())!=-1){ System.out.print((char)c); }*/ char[] buffer = new char[8*1024]; int c; /*批量读取,放入buffer这个字符数组,从第0个位置开始放置,最多放buffer.length个 返回的是读到的字符的个数*/ while(( c = isr.read(buffer,0,buffer.length))!=-1){ String s = new String(buffer,0,c); System.<em>out</em>.print(s); osw.write(buffer,0,c); osw.flush(); } isr.close(); osw.close(); } }
另一种写法:
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; <em>/** </em><em> * FileReader/FileWriter </em><em> * </em><em>字符流的另一种写法,但是方法没有编码参数,如果出现乱码,要用</em><em>FileInputStream</em><em>来操作 </em><em> </em><em>*/ </em>public class FrAndFwDemo { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("C:\\Users\\hasee\\Desktop\\demo\\字符流1.txt"); FileWriter fw = new FileWriter("C:\\Users\\hasee\\Desktop\\demo\\字符流2.txt"); //FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt",true);//true 是追加的意思 char[] buffer = new char[2056]; int c ; while((c = fr.read(buffer,0,buffer.length))!=-1){ fw.write(buffer,0,c); fw.flush(); } fr.close(); fw.close(); } }
希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号