java io 字符流与字节流结构

来源:互联网 发布:淘宝李维斯代购 编辑:程序博客网 时间:2024/06/05 22:59

Java中的流分为两种:


1:字符流 
  输出

    java.io.Writer(implement java.lang.Appendable,java.io.Console,java.io.Flushable)
        其子类有:
            java.io.BufferedWriter
            java.io.CharArrayWriter
            java.io.Filter
            java.io.OutputStreamWriter
                  java.io.FileWriter
            java.io.PipedWriter
            java.io.PrintWriter
            java.io.StringWriter
  输入

    java.io.Reader(implements java.io.Closeable,java.io.Readable)
       java.io.BufferedReader
       java.io.CharArrayReader
       java.io.FilterReader
            java.io.PushbackReader
       java.io.InputStreamReader
            java.io.FileReader
       java.io.PipedReader
       java.io.StringReader
 

 

2:字节流 
输出

java.io.OutputStream (implements java.io.Closeable, java.io.Flushable) 
   java.io.ByteArrayOutputStream
   java.io.FileOutputStream
   java.io.FilterOutputStream
        java.io.BufferedOutputStream
        java.io.DataOutputStream (implements java.io.DataOutput) 
        java.io.PrintStream (implements java.lang.Appendable, java.io.Closeable) 
   java.io.ObjectOutputStream (implementsjava.io.ObjectOutput,java.io.ObjectStreamConstants) 
   java.io.PipedOutputStream

输入

java.io.InputStream (implements java.io.Closeable) 
     java.io.ByteArrayInputStream
     java.io.FileInputStream
     java.io.FilterInputStream
          java.io.BufferedInputStream
          java.io.DataInputStream (implements java.io.DataInput) 
          java.io.LineNumberInputStream
          java.io.PushbackInputStream
     java.io.ObjectInputStream (implements java.io.ObjectInput,   java.io.ObjectStreamConstants) 
     java.io.PipedInputStream
     java.io.SequenceInputStream
     java.io.StringBufferInputStream



例子

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class IoDemo { public static void main(String[] args) { IoDemo io = new IoDemo(); // io.streamDemo(); //io.readerDemo(); io.breaderDemo(); } /** * 字节流 */ public void streamDemo() { FileInputStream fis = null; FileOutputStream fos = null; try { File inFile = new File("D:\\a.txt"); File outFile = new File("D:\\c.txt"); fis = new FileInputStream(inFile); fos = new FileOutputStream(outFile); byte[] buf = new byte[1024]; while ((fis.read(buf)) != -1) { fos.write(buf); } } catch (Exception e) { e.printStackTrace(); } finally { /* * if (fis != null) { try { if (fis != null) { fis.close(); } if * (fos != null) { fos.close(); } } catch (IOException e) { * e.printStackTrace(); } } */ } } /** * 字符流 */ public void readerDemo() { FileWriter fw = null; FileReader fr = null; try { fr = new FileReader("D:\\a.txt"); fw = new FileWriter("D:\\d.txt"); char[] buf = new char[1024]; int num = 0; while ((num = fr.read(buf)) != -1) { fw.write(buf, 0, num); } } catch (IOException e) { System.out.println(e.toString()); } finally { /* * try { fr.close(); fw.close(); } catch (IOException e) { * System.out.println(e.toString()); } */ } } /** * 带缓冲的字符流 */ public void breaderDemo() { FileReader fis = null; BufferedReader bfr = null; FileWriter fw = null; String readContent = ""; try { File file = new File("D:\\a.txt"); if (file.exists()){ String str = ""; fis = new FileReader(file); bfr = new BufferedReader(fis); while ((str = bfr.readLine()) != null) { readContent += str + " \r\n"; } fw = new FileWriter("D:\\b.txt"); fw.write(readContent); } else { System.out.println("文件:" + file.getName() + "不存在"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (bfr != null) { bfr.close(); } if (fis != null) { fis.close(); } if (fw != null) { fw.close(); } } catch (Exception e) { System.out.println("关闭输IO流出错"); e.printStackTrace(); } } } }


0 0
原创粉丝点击