JAVA语言中字符流的写法
Vivian 2018-07-03 来源 : 阅读 945 评论 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频道!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程