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
}
}