Vivian
2018-07-03
来源 :
阅读 1334
评论 0
摘要:本文主要向大家介绍了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频道!
喜欢 | 2
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号