JAva第七節IO

17315 ワード

/*
 *    IO/     
 *
 * File 
 * RandomAccessFile 
 *       
 *     
 *          
 *
 *File 
 *  File  IO                ,         
 *  FIle                   ,  ,  ,          
 *  Java                ,List                   
 *   Unix        (/), DOS         (\),java      Unix DOS      
 *
 *    :          ,     ,      
 *
 *
 *RandomAccessFile 
 *   RandomAccessFile             
 *   RandomAccessFile   “    ”  
 *   RandomAccessFile    (      )                 
 *   RadnomAccessFile        ,       IO  ,   ,     
 *         :
 *        new RandomAccessFile(f, "rw");     
 *        new RandomAccessFile(f, "r");      
 *    :             ,               ,       ,   ,              
 *
 *
 *   
 *   1       
 *   2 InputStream OutputStream 
 *   3 FileInputStream FileOutputStream 
 *   4 Reader Write 
 *   5 PipedInputStream PipedOutputStream 
 *   6 ByteArrayInputStream ByteArrayOutputSteam 
 *
 *
 *      
 *             
 *              ,            
 *          :         (      )
 *
 *  InputStream 
 *                        , java , InputStream              
 *     InputStram    :
 *         int read(); //          
 *                  11111111   , byte     -1, int     255
 *         int read(byte[] b);
 *         int read(byte[] b, int off, int len);
 *         long skip(login n)
 *         int available()
 *         void mark(int readlimit)
 *         void reset()
 *         boolean markSupported()
 *         void close()
 *         ?       ,       close()  
 *
 * OutputStream 
 *                       , Java , OutputSteam              
 *   OutputStream    ;
 *       void write(int b);
 *       void write(byte[] b)
 *       void write(byte[] b, int off, int len)
 *       void flush(); //           ,      
 *       void close()
 *            ->       ->IO  
 *                   1           ,        
 *                   2           ,        
 *
 *           IO           
 *
 *
 *
 *FileInputStream FileOutputStream 
 *
 *1 FileInputStream FileOutputStream                     ,       
 *             
 *
 *2   FileInputStream     ,              ,  FileInputStream     ,           ,                
 *
 *3           FileInputStream       :
 *   1 FileInputStram inOne = new FileInputStream("htllo.test");
 *   2 File f = new File("hello.test");
 *     FileInputStream inTow = new FileInputStream(f);
 *
 *  FileOutputStream     ,            ,                  
 *
 *
 *  :  A       B  ,      ,       ,           A      A      
 *        , A    ,
 *
 *                     ,           
 *                  A    ,                B  
 *
 *
 *Reader Writer 
 *  Reader Writer            ,                ,         ,             
 *               
 *
 *    :  FileWriter            ,   FileReader       
 *
 *
 *
 *    : FileOutputStream            ,   FileInputStream       
 *
 *
 *PipedInputStram PipedOutputStream 
 *    PipedInputStream  PipedOutputStream                
 *
 *    PipedInputStream PipedOutputStream      
 *
 *    PipedWriter PipedReader 
 *
 *          ,                  
 *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 *                  ,   
 *
 *
 *
 *
 *ByteArrayInputStream ByteArrayOutputStream 
 *    ByteArrayInputStream ByteArrayOutputStream,   IO                 ,                      
 *
 *    ByteArrayInputStream       :
 *        ByteArrayInputStream(byte[] buf)
 *        BytearrayInputStream(byte[] buf, int offset, int lenght);
 *
 *    ByteArrayOutputStream       :
 *        ByteArrayOutputStream()
 *        ByteArrayOutputStream(int)
 *
 *        :       ,                 ,               ,                       
 *
 *StringReader  StringWrite     IO         
 *
 *
 *  IO       
 *    System.in     , InputStream       ,System.out      , PrintStream      
 *                          ,InputSteam read      -1         
 *     Windows ,  Ctrl+Z                  , LInux ,    Ctrl+D                
 *
 *    :          ,                       
 *
 *
 *  :                  ,                  ,  -1           ,
 *                  System.in    ,     InputStream              ,   System.in       InputStream             
 *
 *
 *
 *    
 *           ,                  ,               
 *
 *     a    97,  b    98 ,                 ASCII(         )
 *   ASCII   bit   0,          0 127  
 *
 *                           ,             bit  1,                    GB2312(   )
 *
 *    GB2312    ,        (    )     ,        GBK
 *
 *                 ,BGK GB2312             
 *
 *   "  " " " ,              D6D0,                A4A4,                 BIG5(   )
 *
 *                      ,                      ,             ,                
 *
 *
 *Unicode   
 *   ISO(       )                ,   Unicode  
 *
 *   " "    ,                         4e2d
 *
 *                 Unicode  ,               " "    ,             ,      " "    
 *
 *   Unicode                ,  ASCII       ,      ASCII             ,      bits 0   
 *
 *   Unicode        ,                  2 16  (65536),   ,Unicode                     
 *
 *             ,         Unicode    
 *
 *   java         Unicode  ,Java   Unicode           ,          
 *
 *
 *UTF-8  
 *   ASCII       ,         ,         ,UTF-8            ,
 *     UTF-8     ,     EF BB BF             
 *
 *      TUF-8   Unicode               :
 *
 *   \u0001 \u0007f     ,UTF-8   :(byte)c.
 *   0001---007E;  0xxxxxxx ===7bits
 *
 *   \u0000     \u0080 \u07ff     ,UTF-8   :
 *      (byte)(0xc0|0x1 f&(c>>6)), (byte)(0x80|(0x3f&c))
 *   0080-07FF 0000
 *          : 110xxxxx    10xxxxxx  11bits
 *
 *   \u0800 uffff     ,UTF-8   :
 *   (byte)(0xe0|(0x0f&(c>>12))), (byte)(0x80|(0x3f &(c>>6))), (byte)(0x80|(0x3f& c))
 *   1111xxxx   10xxxxxx  10xxxxx  16bits
 *
 *   UTF-8   
 *      1       0x00  
 *      2                        
 *      3       ASCII      
 *  UTF-8   :
 *                  ,    、 、   
 *
 *
 *TUF-16  
 *   UTF-16   Unicode              ,    Unicode                
 *
 *   UTF-16 Unicode        Unicode          ,      Unicode                
 *       Unicode       UTF-16   
 *
 *   Unicode   0xD800-0xDFFFF         ,UTF-16     ,       ,          
 *   0xD800-0xD8FF  ,          0XDC00-0XDFFF  
 *
 *                        0xD800-0xDFFFF   ?
 *
 *                 ,UTF-16   Unicode                 
 *
 *
 *     0x1234          ,  Little-Endian Big-Endian                 
 *
 *        0xFE 0XFF       ,           Big-Endian UTF-16  ;
 *        0xFF 0xFE       ,           Little-Endian UTF-16  
 *
 *
 *
 *         
 *           GB2312 
 *           UTF-8 
 *           Unicode 
 *     Windows                    
 *
 *             
 *     Windows           ,      "  " "  " " ",          ,   "  "  " "       
 *
 *
 *
 *         
 *
 *          Unicode 
 *          GB2312 
 *                        
 *            
 *             --        
 *
 *                         
 *
 *
 *     GB2312  Unicode      
 *   GB2312         ISO8859-1        Unicode    ,              Unicode     
 *
 *
 *
 *       
 *             
 *        1   FileOutputStream               ,        ?    FileOutputStream               ?
 *        2    DataOutputStream                   (        )   ,           :
 *              FileOutputStream      DataOutputStream       DataOutputStream                
 *        3 DataOutputStream              ,                      ,
 *              DataOutputStream          ,           
 *        4 DataOutputStream          :
 *          public DataOutputStream(OutputStream out)
 *          DataOutputStream       :
 *             public final void writeBoolean(boolean v)
 *             public final void writeShort(int v)
 *             public final void writeChar(int v)
 *             public final void writeInt(int v)
 *             public final void writeLong(long v)
 *             public final void writeFloat(float v)
 *             public final void writeDouble(double v)
 *             public final void writeBytes(String s)
 *
 *    BufferedInputStream   BufferedOutputStream 
 *             I/O         ,            :
 *              java            ,          
 *                   ,       skip, mark reset       
 *    BufferedInputStream BufferedOutputStream Java           ,             
 *                      ,                     
 *
 *    BufferedInputStream       :
 *       BufferedInputStream(InputStream in)
 *       BufferedInputStream(InputStream in, int size)
 *
 *    BufferedOutputStream        :
 *       BufferedOutputStream(OutputStream out)
 *       BufferedOutputStream(OutputStream out, int size)
 *    BufferedReader BufferedWriter 
 *       BufferedReader readLine            ,BufferedWrite newLine                      
 *
 *
 *
 *    DataInputStream DataOutputStream 
 *    PrintStream 
 *    ObjectInputStream ObjectOutputStream 
 *              
 *
 *
 *    DataInputStream DataOutputStream 
 *        DataOutputStream              :
 *            public final void writeBytes(String s)
 *            public final void writeChars(String s)
 *            public final void writeUTF(String str)
 *
 *       DataIpuutStream     readUTF  ,   "readBytes" "readChars"   ?
 *
 *        :    DataOutputSteam  writeUTF,WriteBytes WriteChars  ,           ,           :
 *
 *           DataOutputStream -> BufferedOutputStream -> FileOutputStream
 *                                                                         
 *           DataInputStream -> BufferedInputStream -> FileInputStream
 *
 *                 ,                 
 *
 *
 *PrintStream 
 *    PrintStream        print println  ,                     
 *              ?  ,97             0x39 0x37
 *
 *    PrintStream       :
 *           PrintStream(OutputStream out)
 *           PrintStream(OutputStream out, boolean autoflush)
 *           PrintStream(OutputStream out, boolean autoflush, Stream encodeing)
 *
 *     PrintStream   PintWritrer ,            (
),PrintWriter * PrintWriter Println , Windows '\r
', Linux "
" * * *ObjectInputStream ObjectOutputStream * ObjectInputStream ObjectOutputStram , * * ObjectInputStream ObjectOutputStream Serializable , transient static * * MyClass * public class MyClass implements Serizlizable * { public transient Thread t; private String custormerID; private int total; } //transient : , ObjectOutputStream (mytext.txt) ObjectInputStream , , ? InputStreamReader OutputStreamWrite, ,InputStreamReader ,OupputStreamWriter InputStreamReader : InputStreamReader(InputStream in) InputStreamReader(InputStream in, String CharsetName) OutputStreamWriter OutuptStreamWriter(OutputStream ou) OutputStreamWriter(OutputStream ou, String CharsetName) , InputStreamReader OutputStreamWriter , BufferedWriter OutputStreamWriter , BufferedReader InputStreamReader; Java java process , , Process getOutputStream getInputStream : TestInOut java.exe MyTest ,TestInOut MyTest , , (1) , , (2) PipedInputStream PipedOutputStream PipedOutputStream.writer (3) PipedInputStream PipedOutputStream ,PipedOutputStream.writer Process destroy (1)for(int i=0; i<str.length(); i++){ .. } var len = str.length(); for(in i=0; i<len; i++){ } (2) byte[] buf = new byte[1024]; while(true){ buf } while(true){ byte [] buf = new byte[1024]; } InputStream -----FileInputStream -----objectInputStream -----PipedInputStream -----SequenceInputStream -----FilterInputStream ------DataInputStream ------PushbackInputStream ------BufferedInputStream ------LineNumberInputStream -----StringBufferIputStream -----ByteArrayInputStream OutputStream -----FileOutputStream -----ObjectOutputStream -----FilterOutputStream --------DataOutputStream --------BufferedOutputStream --------PrintStream -----PipedOutputStream -----ByteArrayOutputStream Reader -----BufferedReader -----LineNewberReader -----CharArrayReader -----StringReader -----InputStreamReader -----FileReader -----PipedReader -----FilterReader -----PushbackReader Writer ------BufferedWriter ------CharArrayWriter ------StringWriter ------OutputStreamWrtier -------FileWriter ------PrintWriter ------PipedWriter ------FilterWriter Decorator( ) (the Decorators) , Decorator IO , FilterXXX , , : RecordIputStream RecordOutputStream, Exception Throwable printStackTrace : --public void printStackTrace(); --public void printStackTrace(PrintStream s) --public void printStackTrace(PrintWriter s) printStackTrace ? (1) 1 , txt , 1Mbytes , , 1.txt, 2.txt 2 , , 3 , StringReader , StringWriter , **/ public class Lesson7 { /** * Method main * * * @param args * */ public static void main(String[] args) { // TODO: Add your code here } }