java IO learning
javaѧϰ:³¹µ×Ã÷°×JavaµÄIOϵͳ
ÎÄÕÂÀ´Ô´£º»¥ÁªÍø
Ò»£® InputºÍOutput
1. stream´ú±íµÄÊÇÈκÎÓÐÄÜÁ¦²ú³öÊý¾ÝµÄÊý¾ÝÔ´£¬»òÊÇÈκÎÓÐÄÜÁ¦½ÓÊÕÊý¾ÝµÄ½ÓÊÕÔ´¡£ÔÚJavaµÄIOÖУ¬ËùÓеÄstream£¨°üÀ¨InputºÍOut stream£©¶¼°üÀ¨Á½ÖÖÀàÐÍ£º
1.1 ÒÔ×Ö½ÚΪµ¼ÏòµÄstream
ÒÔ×Ö½ÚΪµ¼ÏòµÄstream£¬±íʾÒÔ×Ö½ÚΪµ¥Î»´ÓstreamÖжÁÈ¡»òÍùstreamÖÐдÈëÐÅÏ¢¡£ÒÔ×Ö½ÚΪµ¼ÏòµÄstream°üÀ¨ÏÂÃæ¼¸ÖÖÀàÐÍ£º
1) input¡¡stream£º
1) ByteArrayInputStream£º°ÑÄÚ´æÖеÄÒ»¸ö»º³åÇø×÷ΪInputStreamʹÓÃ
2) StringBufferInputStream£º°ÑÒ»¸öString¶ÔÏó×÷ΪInputStream
3) FileInputStream£º°ÑÒ»¸öÎļþ×÷ΪInputStream£¬ÊµÏÖ¶ÔÎļþµÄ¶ÁÈ¡²Ù×÷
4) PipedInputStream£ºÊµÏÖÁËpipeµÄ¸ÅÄÖ÷ÒªÔÚÏß³ÌÖÐʹÓÃ
5) SequenceInputStream£º°Ñ¶à¸öInputStreamºÏ²¢ÎªÒ»¸öInputStream
2) Out¡¡stream
1) ByteArrayOutputStream£º°ÑÐÅÏ¢´æÈëÄÚ´æÖеÄÒ»¸ö»º³åÇøÖÐ
2) FileOutputStream£º°ÑÐÅÏ¢´æÈëÎļþÖÐ
3) PipedOutputStream£ºÊµÏÖÁËpipeµÄ¸ÅÄÖ÷ÒªÔÚÏß³ÌÖÐʹÓÃ
4) SequenceOutputStream£º°Ñ¶à¸öOutStreamºÏ²¢ÎªÒ»¸öOutStream
1.2 ÒÔUnicode×Ö·ûΪµ¼ÏòµÄstream
ÒÔUnicode×Ö·ûΪµ¼ÏòµÄstream£¬±íʾÒÔUnicode×Ö·ûΪµ¥Î»´ÓstreamÖжÁÈ¡»òÍùstreamÖÐдÈëÐÅÏ¢¡£ÒÔUnicode×Ö·ûΪµ¼ÏòµÄstream°üÀ¨ÏÂÃæ¼¸ÖÖÀàÐÍ£º
1) Input¡¡Stream
1) CharArrayReader£ºÓëByteArrayInputStream¶ÔÓ¦
2) StringReader£ºÓëStringBufferInputStream¶ÔÓ¦
3) FileReader£ºÓëFileInputStream¶ÔÓ¦
4) PipedReader£ºÓëPipedInputStream¶ÔÓ¦
2) Out¡¡Stream
1) CharArrayWrite£ºÓëByteArrayOutputStream¶ÔÓ¦
2) StringWrite£ºÎÞÓëÖ®¶ÔÓ¦µÄÒÔ×Ö½ÚΪµ¼ÏòµÄstream
3) FileWrite£ºÓëFileOutputStream¶ÔÓ¦
4) PipedWrite£ºÓëPipedOutputStream¶ÔÓ¦
ÒÔ×Ö·ûΪµ¼ÏòµÄstream»ù±¾É϶ÔÓÐÓëÖ®Ïà¶ÔÓ¦µÄÒÔ×Ö½ÚΪµ¼ÏòµÄstream¡£Á½¸ö¶ÔÓ¦ÀàʵÏֵŦÄÜÏàͬ£¬×ÖÊÇÔÚ²Ù×÷ʱµÄµ¼Ïò²»Í¬¡£ÈçCharArrayReader£ººÍByteArrayInputStreamµÄ×÷Óö¼ÊǰÑÄÚ´æÖеÄÒ»¸ö»º³åÇø×÷ΪInputStreamʹÓã¬Ëù²»Í¬µÄÊÇǰÕßÿ´Î´ÓÄÚ´æÖжÁȡһ¸ö×Ö½ÚµÄÐÅÏ¢£¬¶øºóÕßÿ´Î´ÓÄÚ´æÖжÁȡһ¸ö×Ö·û¡£
1.3 Á½ÖÖ²»ÏÖµ¼ÏòµÄstreamÖ®¼äµÄת»»
InputStreamReaderºÍOutputStreamReader£º°ÑÒ»¸öÒÔ×Ö½ÚΪµ¼ÏòµÄstreamת»»³ÉÒ»¸öÒÔ×Ö·ûΪµ¼ÏòµÄstream¡£
2. streamÌí¼ÓÊôÐÔ
2.1 “ΪstreamÌí¼ÓÊôÐÔ”µÄ×÷ÓÃ
ÔËÓÃÉÏÃæ½éÉܵÄJavaÖвÙ×÷IOµÄAPI£¬ÎÒÃǾͿÉ
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
ÌâÄ¿£ºÇëÓöàÏß³ÌʵÏÖÒ»¸öÉú²úÕßÀàºÍÒ»¸öÏû·ÑÕßÀ࣬Éú²úÕßËæ»úÉú³É20¸ö×Ö·û£¬Ïû·ÑÕß½«×Ö·û´òÓ¡µ½¿ØÖÆÌ¨¡£
class SyncStack{ //ͬ²½¶ÑÕ»Àà
¡¡¡¡¡¡private int index = 0; //¶ÑÕ»Ö¸Õë³õʼֵΪ0
¡¡¡¡¡¡private char []buffer = new char[6]; //¶ÑÕ»ÓÐ6¸ö×Ö·ûµÄ¿Õ¼ä
¡¡¡¡¡¡public synchronized void push(char c){ //¼ÓÉ ......
ÔÚÍøÉÏÒ²¿´Á˺ܶණÎ÷£¬¹ØÓÚJAVAÈí¼þ¼Ü¹¹·½ÃæµÄ¶«Î÷£¬ÏÖÔÚ»¹ÕæÊǺÜÄÑÕÒµ½£¬²»¹ý£¬Èí¼þ¿ª·¢µÄ¼Ü¹¹»ù±¾ÊÇÏàͬµÄ¡£ËùÒÔ£¬ÎÒÔÚÍøÉϲéÕÒÁ˺ܶàÆäËûÓïÑÔ¹ØÓÚÈí¼þ¼Ü¹¹·½ÃæµÄÎÄÕ¡£ÔÙÕâÀïÒ²À´ËµËµ×Ô¼º¶ÔÈí¼þ¼Ü¹¹£¬ÌرðÊÇÔÚJAVAÏîÄ¿¼Ü¹¹·½ÃæµÄ¿´·¨¡£ËµµÃ²»Ò»¶¨¶Ô£¬µ«ÕâÒ²ÊÇÎÒ¼¸ÄêÀ´µÄ×ܽá°É¡£
1. ¾¡Á¿²»Òª¿¼ÂÇÏîÄ¿ÍâµÄÖØÓÃ
Ðí¶àÈË ......