1.reader

package com.io.Reader;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader; public class InputStreamReaderTest { /**InputStreamReader类的用法 ,主要的是用于把 字节流改变成字符流
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
InputStreamReader isr=new InputStreamReader(new FileInputStream("D:/Zhou.txt"),"utf-8");
//int data;
//while((data=isr.read())!=-1){
// System.out.print((char)data);
//} //budderedReader类
BufferedReader br=new BufferedReader(isr);
System.out.println(br.readLine());
isr.close();
} } package com.io.Reader; import java.io.IOException;
import java.io.StringReader; public class StringReaderTest { /**StringReader的用法
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
StringReader reader=new StringReader("ni hao 好");
int data;
while((data=reader.read()) != -1){
System.out.println((char)data+" "); }
reader.close();
}
} 2.writer package com.io.writer; import java.io.*; public class FileUtil { /**copy文件的类 字符流的运用
* @param args
* @throws Exception
*/
public void readFile(String fileName) throws Exception{
readfile(fileName, null);
} public void readfile(String fileName,String charsetName) throws Exception{
InputStream in=new FileInputStream(fileName);
InputStreamReader isr=null;
if(charsetName==null){
isr=new InputStreamReader(in);
}else{
isr=new InputStreamReader(in,charsetName);
} BufferedReader br=new BufferedReader(isr);
String data;
while((data=br.readLine()) != null){
System.out.println(data);
} br.close();
} public void copyFile(String from,String charsetFrom,String to,String charsetTo) throws Exception{
InputStream in=new FileInputStream(from);
InputStreamReader reader;
if(charsetFrom == null){
reader=new InputStreamReader(in);
}else{
reader=new InputStreamReader(in,charsetFrom);
} BufferedReader br=new BufferedReader(reader); OutputStream out=new FileOutputStream(to);
OutputStreamWriter write=new OutputStreamWriter(out,charsetTo);
BufferedWriter bw=new BufferedWriter(write);
PrintWriter pw=new PrintWriter(bw);
String data;
while((data=br.readLine()) !=null){
pw.println(data);
} pw.close();
br.close();
} public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
FileUtil fileUtil=new FileUtil(); fileUtil.readFile("D:/Zhou.txt");
fileUtil.copyFile("D:/Zhouhai.txt", "utf-8", "D:/Zhou.txt", "utf-8");
fileUtil.readFile("D:/Zhou.txt");
} }

JavaIO中的Reader和writer的更多相关文章

  1. java中reader和writer部分的笔记

    输入和输出流:获取流对象从文件中获取InputStream in = Files.newInputStream(path);OutputStream out = Files.newOutputStre ...

  2. Java中的流(3)字符流-Reader和Writer

    java中提供了处理以16位的Unicode码表示的字符流的类,即以Reader和Writer 为基类派生出的一系列类.  1.Reader和Writer  这两个类是抽象类,只是提供了一系列用于字符 ...

  3. JavaIO -- Reader 和 Writer

    一.简介 设计Reader和Writer继承层次结构主要是为了国际化.InputStream和OutStream流继承层次结构仅支持8位字节流,并不能很好的处理16位的Unicode字符.由于Unic ...

  4. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

  5. Java之IO(十)Reader和Writer

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7071733.html 1.前言 之前的章节已经将Java8的io包中的字节流介绍完毕了.本章开始介绍Java的I ...

  6. java-I/O File类(5)-Reader和Writer、OutputStreamWriter 、BufferedWriter、字节流和字符流的区别

      标签: outputstreamwriterreader字符file方法 2015-05-14 23:06 469人阅读 评论(0) 收藏 举报  分类: 孙鑫-java基础(16)  I-O(4 ...

  7. 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader

    不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...

  8. Java I/O(三)各种Reader和Writer读写器、RandomAccessFile随机访问文件、序列化

    2019 01/01 八.Reader和Writer读写器 前面讲的输入输出流的基本单位都是字节,因此可以称为“字节流”,读写器是以字符为基本单位,可以称为“字符流”.它们的使用方法非常相似,因此我考 ...

  9. Java IO: Reader和Writer

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) Reader 原文链接 Reader是Java IO中所有Reader的基类.Reader与Input ...

随机推荐

  1. runv containerd 流程分析

    当runv需要启动一个容器的时候,首先需要启动containrd,作为该容器的daemon.因此,启动containerd的相关代码也是从runv/start.go开始.最终,启动containerd ...

  2. 《TCP/IP详解 卷一》读书笔记-----UDP&IP 分片

    1.进程每产生一个UDP数据报就由一个IP数据报进行发送,而在TCP中,一个IP数据报并不与每个TCP报文段一一对应 2.UDP的端口号和TCP的端口号是相互独立的,对那些众所周知的端口号TCP和UD ...

  3. 边工作边刷题:70天一遍leetcode: day 85-3

    Zigzag Iterator 要点: 实际不是zigzag而是纵向访问 这题可以扩展到k个list,也可以扩展到只给iterator而不给list.结构上没什么区别,iterator的hasNext ...

  4. HDU 2082 找单词 --生成函数

    跟上题是一个思路:http://www.cnblogs.com/whatbeg/p/3728545.html 只不过是上一题的扩展. 代码: #include <iostream> #in ...

  5. AC日记——舒适的路线 codevs 1001 (并查集+乱搞)

    1001 舒适的路线 2006年  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description Z小镇是 ...

  6. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  7. JavaScript---Ajax和函数回调,异步编程

    一 Ajax 函数的定义  :  Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),无刷新的从服务器读取数据,可以在不重新加载整个网页的情况下 ...

  8. windows系统命令服务安装卸载

    安装: sc create PDW.CHM.WebAPI binPath= "%~dp0PDW.CHM.WebAPI.exe" start= autosc start PDW.CH ...

  9. .net程序集强命名(签名)

    要想得到强签名的dll有两种情况: 1.给项目添加强命名 在你的项目右键->属性->签名,勾选“为程序集签名”,新建 或 浏览已经新建过的.pfx文件,然后重新build项目,生成的dll ...

  10. C# 单点登录 MVC

    实现sso系统的主要难点: 1:不能直接访问数据库,有安全隐患,而且还容易乱套. 2:多个系统需要进行单点登录,逻辑需要严谨,能支持N多系统.而不只是少数几个系统. 3:代码不能过于复杂,需要简洁,灵 ...