zoukankan      html  css  js  c++  java
  • java io流03 字符流

    1. 字符流

      字符流是以Reader和Writer为基础派生的一系列类

    2. 字符输入流FileReader

      FileReader构造方法

    public class FileReader extends InputStreamReader    //继承InputStreamReader
    
    public FileReader(String fileName)    //创建一个指定文件名的字符输入流
    
    public FileReader(File file)    //创建一个指定文件对象的字符输入流
    
    public FileReader(FileDescriptor fd)    //创建一个指定文件描述符的字符输入流

      

      FileReader实例(读取字符,只能读取文本文件)

        public static void main(String[] args){
            FileReader fr = null;
            
            try{
                fr = new FileReader("C:\Users\THINK\Desktop\JavaTest\Temp.txt");
                char[] chars = new char[4];
                int readData = 0;
                while((readData = fr.read(chars))!=-1){
                    System.out.print(new String(chars,0,readData));
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(fr != null){
                    try{
                        fr.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }

    3. 字符输出流FileWriter

      FileWriter构造方法

    public class FileWriter extends OutputStreamWriter    //继承OutputStreamWriter
    
    public FileWriter(String fileName)    //创建一个指定文件名的字符输出流
    
    public FileWriter(String fileName, boolean append)    //是否追加
    
    public FileWriter(File file)    //创建也给指定文件对象的字符输出流
    
    public FileWriter(File file, boolean append)    //是否追加
    
    public FileWriter(FileDescriptor fd)    //指定字符描述符
    
    public FileWriter(String fileName, Charset charset)    //创建一个使用命名字符集的字符输出流
    
    public FileWriter(String fileName, Charset charset, boolean append)    //是否追加
    
    public FileWriter(File file, Charset charset)    //使用命名字符集
    
    public FileWriter(File file, Charset charset, boolean append)    //是否追加

      FileWriter实例

    public class FileWriterTest01{
        public static void main(String[] args){
            FileWriter fw = null;
            
            try{
                fw = new FileWriter("C:\Users\THINK\Desktop\JavaTest\Temp01.txt",true);
                char[] chars = {'奥','运','会'};
                fw.write(chars);
                fw.write(chars,1,2);    //可以写入指定长度字符
                fw.write("helloworld");     //可以直接写入字符串
                fw.write("hellojava");
                fw.flush();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(fw!=null){
                    try{
                        fw.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
                }
            }
        }
    }

      使用FileReader和FileWriter进行文本文件的拷贝(只能拷贝普遍文本文件)

    public class CopyTest02{
        public static void main(String[] args){
            FileReader fr = null;
            FileWriter fw = null;
            
            try{
                fr = new FileReader("D:\JavaProject\chapter19.iml");
                fw = new FileWriter("C:\Users\THINK\Desktop\JavaTest\chapter19.iml");
                char[] chars = new char[1024*512];
                int readData = 0;
                while((readData = fr.read(chars)) != -1){
                    fw.write(chars,0,readData);
                }
                fw.flush();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(fw != null){
                    try{
                        fw.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
                if(fr != null){
                    try{
                        fr.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    4. 字符缓冲输入流BufferedReader

      BufferedReader是缓冲字符输入流,为其他字符输入流添加缓冲功能。  

      BufferedReader构造方法

    public class BufferedReader extends Reader    //继承Reader
    
    public BufferedReader(Reader in, int sz)    //创建指定大小输入缓冲区的缓冲字符输入流
    
    public BufferedReader(Reader in)    //创建默认大小输入缓冲区的缓冲字符输入流

      BufferedReader实例

    public class BufferedReaderTest01{
        public static void main(String[] args) throws IOException{
            FileReader fr = new FileReader("C:\Users\THINK\Desktop\JavaTest\chapter19.iml");
            BufferedReader br = new BufferedReader(fr);    //需要传入一个字符流
            
        /*    String strLine1 = br.readLine();    //可以直接读取一行
            System.out.println(strLine1);
            
            String strLine2 = br.readLine();
            System.out.println(strLine2);  */
            
            String strLine = null;
            while((strLine = br.readLine())!=null){
                System.out.println(strLine);
            }
            br.close();   //只需关闭缓冲流,因为在源码中已经关闭了字符流
        }
    }

    5. 字符缓冲输出流BufferedWriter

      BufferedWriter是缓冲字符输出流,为其他字符输出流添加缓冲功能。

      BufferedWriter构造方法

    public class BufferedWriter extends Writer    //继承Writer
    
    public BufferedWriter(Writer out)    //创建默认大小的缓冲字符输出流
     
    public BufferedWriter(Writer out, int sz)    //创建指定大小的缓冲字符输出流

      BufferedWriter实例

    public class BufferedWriterTest01{
        public static void main(String[] args) throws IOException{
            FileWriter fw = new FileWriter("C:\Users\THINK\Desktop\JavaTest\Temp04.txt");
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write("hello world");
            bw.write("hello java");
            bw.flush();
            bw.close();
        }
    }

    6. 转换流InputStreamReader

      InputStreamReader作用是将字节输入流转换为字符输入流,继承Reader。

      InputStreamReader实例

    public class InputStreamReaderTest01{
        public static void main(String[] args) throws IOException{
            
        /*    FileInputStream fis = new FileInputStream("C:\Users\THINK\Desktop\JavaTest\chapter19.iml");
            InputStreamReader isr = new InputStreamReader(fis);    //BufferedReader使用字符流作为参数,所以要转换
            BufferedReader br = new BufferedReader(isr);    //参数要传入一个字符流    */
            
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("C:\Users\THINK\Desktop\JavaTest\chapter19.iml")));    //以上三行可以写到一块
            String strLine = null;
            while((strLine = br.readLine()) != null){
                System.out.println(strLine);
            }
            br.close();
        } 
    }

    7. 转换流OutputStreamWriter

      OutputStreamWriter作用是将字节输出流转换为字符输入流,继承Writer。

      OutputStreamWriter实例

    public class OutputStreamWriterTest01{
        public static void main(String[] args) throws IOException{
            
        /*    FileOutputStream fos = new FileOutputStream("C:\Users\THINK\Desktop\JavaTest\Temp05.txt");
            OutputStreamWriter osw = new OutputStreamWriter(fos);
            BufferedWriter bw = new BufferedWriter(osw);  */
            
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\Users\THINK\Desktop\JavaTest\Temp05.txt",true)));
            
            bw.write("hello java");
            bw.write("hello olympic");
            bw.flush();
            bw.close();
        }
    }
  • 相关阅读:
    一维数组的 K-Means 聚类算法理解
    c#计算2个字符串的相似度
    一个人开发的html整站源码分享网站就这么上线了
    html页面显示服务器时间
    禁用浏览器自动填充表单解决办法
    布隆过滤器
    (转)二进制与三进制趣题
    随机算法_模拟退火算法
    NAT穿越
    (转)为什么所有浏览器的userAgent都带Mozilla
  • 原文地址:https://www.cnblogs.com/homle/p/15086207.html
Copyright © 2011-2022 走看看