javaÖеÄioϵͳ×ܽá
ÎÄÕÂ來Ô´:
http://www.blogjava.net/spark/archive/2006/09/29/72733.html
javaÖеÄioϵͳ×ܽá.
javaÖеÄioÖеģ¨input/output£©streamÎ޷ǾÍÊǰüÀ¨»ùÓÚ×Ö·ûµÄstream¡¢»ùÓÚ×Ö½ÚµÄstreamºÍ°Ñ×Ö½Úµ¼ÏòµÄstreamת»»
×Ö·ûΪµ¼ÏòµÄstreamµÄstream¡££¨ºÜÄÑÀí½âô£¿£©
ÒÔ×Ö½ÚΪµ¼ÏòµÄstream------InputStream/OutputStream
InputStream ºÍ OutputStreamÊÇÁ½¸öabstactÀ࣬¶ÔÓÚ×Ö½ÚΪµ¼ÏòµÄstream¶¼À©Õ¹ÕâÁ½¸ö¼¦Àߣ¨»ùÀà^_^£©;
--InputStream
ByteArrayInputStream -- °ÑÄÚ´æÖеÄÒ»¸ö»º³åÇø×÷ΪInputStreamʹÓÃ.
construct---ByteArrayInputStream(byte[])´´½¨Ò»¸öÐÂ×Ö½ÚÊý×éÊäÈëÁ÷£¬Ëü´ÓÖ¸¶¨×Ö½ÚÊý×éÖжÁÈ¡Êý¾Ý¡£
---ByteArrayInputStream(byte[], int, int) ´´½¨Ò»¸öÐÂ×Ö½ÚÊý×éÊäÈëÁ÷£¬Ëü´ÓÖ¸¶¨×Ö½ÚÊý×éÖжÁÈ¡Êý¾Ý¡£
---mark::¸Ã×Ö½ÚÊý×éδ±»¸´ÖÆ¡£
StringBufferInputStream -- °ÑÒ»¸öString¶ÔÏó×÷ΪInputStream .
×¢ÊÍ£º²»ÍƼöʹÓà StringBufferInputStream ·½·¨¡£ ´ËÀ಻Äܽ«×Ö·ûÕýÈ·µÄת»»Îª×Ö½Ú¡£
ͬ JDK 1.1 °æÖеÄÀàËÆ£¬´ÓÒ»¸ö´®´´½¨Ò»¸öÁ÷µÄ×î¼Ñ·½·¨ÊDzÉÓà StringReader Àà¡£
construct---StringBufferInputStream(String) ¾ÝÖ¸¶¨´®´´½¨Ò»¸ö¶ÁÈ¡Êý¾ÝµÄÊäÈëÁ÷´®¡£
FileInputStream -- °ÑÒ»¸öÎļþ×÷ΪInputStream£¬ÊµÏÖ¶ÔÎļþµÄ¶ÁÈ¡²Ù×÷
construct---FileInputStream(File) ´´½¨Ò»¸öÊäÈëÎļþÁ÷£¬´ÓÖ¸¶¨µÄ File ¶ÔÏó¶ÁÈ¡Êý¾Ý¡£
---FileInputStream(FileDescriptor) ´´½¨Ò»¸öÊäÈëÎļþÁ÷£¬´ÓÖ¸¶¨µÄÎļþÃèÊöÆ÷¶ÁÈ¡Êý¾Ý¡£
---FileInputStream(String) ´´½¨Ò»¸öÊäÈëÎļþÁ÷£¬´ÓÖ¸¶¨Ãû³ÆµÄÎļþ¶ÁÈ¡Êý¾Ý¡£
method ---- read() ´Óµ±Ç°ÊäÈëÁ÷ÖжÁȡһ×Ö½ÚÊý¾Ý¡£
read(byte[]) ½«µ±Ç°ÊäÈëÁ÷ÖÐ b.length ¸ö×Ö½ÚÊý¾Ý¶Áµ½Ò»¸ö×Ö½ÚÊý×éÖС£
read(byte[], int, int) ½«ÊäÈëÁ÷ÖÐ len ¸ö×Ö½ÚÊý¾Ý¶ÁÈëÒ»¸ö×Ö½ÚÊý×éÖС£
PipedInputStream£ºÊµÏÖÁËpipeµÄ¸ÅÄÖ÷ÒªÔÚÏß³ÌÖÐʹÓÃ. ¹ÜµÀÊäÈëÁ÷ÊÇÖ¸Ò»¸öͨѶ¹ÜµÀµÄ½ÓÊÕ¶Ë¡£
Ò»¸öÏß³Ìͨ¹ý¹ÜµÀÊä³öÁ÷·¢ËÍÊý¾Ý£¬¶øÁíÒ»¸öÏß³Ìͨ¹ý¹ÜµÀÊäÈëÁ÷¶ÁÈ¡Êý¾Ý£¬
ÕâÑù¿ÉʵÏÖÁ½¸öÏ̼߳äµÄͨѶ¡£
PipedInputStream() ´´½¨Ò»¸ö¹ÜµÀÊäÈëÁ÷£¬Ëü»¹Î´ÓëÒ»¸ö¹ÜµÀÊä³öÁ÷Á¬½Ó¡£
PipedInputStream(PipedOutputStream) ´´½¨Ò»¸ö¹ÜµÀÊäÈëÁ÷, ËüÒÑÁ¬½Óµ½Ò»¸ö¹ÜµÀÊä³öÁ÷¡£
SequenceInputStream£º°Ñ¶à¸öInputStreamºÏ²¢ÎªÒ»¸öInputStream .¡°ÐòÁÐÊäÈëÁ÷¡±ÀàÔÊÐíÓ¦ÓóÌÐò°Ñ¼¸¸öÊäÈëÁ÷Á¬ÐøµØºÏ²¢ÆðÀ´£¬
²¢ÇÒʹËüÃÇÏñµ¥¸öÊäÈëÁ÷Ò»
Ïà¹ØÎĵµ£º
1¡¢set¼¯ºÏÊÇ×î¼òµ¥µÄÒ»ÖÖ¼¯ºÏ£¬¼¯ºÏÖв»°´Ö¸¶¨µÄ·½Ê½ÅÅÐò£¬²¢ÇÒûÓÐÖØ¸´¶ÔÏó¡£
2¡¢set½Ó¿ÚÖ÷ÒªÓÐÁ½¸öʵÏÖÀࣺHashSetºÍTreeSet
(1)HashSet:Êǰ´ÕÕ¹þÏ£Ëã·¨À´½øÐдæÈ¡¼¯ºÏÖеĶÔÏ󣬴æÈ¡µÄËٶȱȽϿ졣
(2)TreeSet£ºÊµÏÖÁËSortedSet½Ó¿Ú£¬¾ßÓÐÅÅÐòµÄ¹¦ÄÜ¡£
3¡¢HashSetÀàÊǰ´ÕÕ¹þÏ£Ëã·¨À´´æÈ¡ ......
ÏÖÔÚ£¬Ì¸ÔƼÆËãµÄ¿É¶àÁË£¬²»¹ý£¬Ò»°ã±È½Ï¹Ø×¢µÄÊÇGoogleºÍAmazonµÄÔÆ·þÎñ¡£´Ó´ó·¶Î§À´¿´£¬Ò²Ö»ÓÐÕâÁ½¼Ò»ñµÃÁ˹«Öڵĸü¶à¹Ø×¢¡£±ÈÈ磬ÎÒ¸öÈ˺ܸÐÐËȤµÄ£¬¾ÍÊÇGoogleµÄApp EngineʹÓû§Äܹ»ÔÚGoogle»ù´¡ÉèÊ©ÉϹ¹½¨ºÍÍÐ¹Ü Web Ó¦ÓóÌÐò¡£ÖÁÓÚAmazon£¬ËüµÄAmazonWeb Services»¹°üÀ¨Elastic Clou ......
1.1 ²»ÓÃnew¹Ø¼ü´Ê´´½¨ÀàµÄʵÀý
ÓÃnew¹Ø¼ü´Ê´´½¨ÀàµÄʵÀýʱ£¬¹¹Ô캯ÊýÁ´ÖеÄËùÓй¹Ô캯Êý¶¼»á±»×Ô¶¯µ÷Óᣵ«Èç¹ûÒ»¸ö¶ÔÏóʵÏÖÁËCloneable½Ó¿Ú£¬ÎÒÃÇ¿ÉÒÔµ÷ÓÃËüµÄclone()·½·¨¡£clone()·½·¨²»»áµ÷ÓÃÈκÎÀ๹Ô캯Êý¡£
ÔÚʹÓÃÉè¼ÆÄ£Ê½£¨Design Pattern£©µÄ³¡ºÏ£¬Èç¹ûÓÃFactoryģʽ´´½¨¶ÔÏó£¬Ôò¸ÄÓÃclone()·½·¨´´½¨Ðµ ......
package com.chinacache.utils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class FileUtils {
private static final Logger logger = Logger.getLogger(FileUtils.class);
/**
* ÒÆ¶¯Îļþµ½Ö¸¶¨Ä¿ ......
java.util Öеļ¯ºÏÀà°üº¬ Java ÖÐijЩ×î³£ÓõÄÀà¡£ ×î³£Óõļ¯ºÏÀàÊÇ List ºÍ Map¡£ List µÄ¾ßÌåʵÏÖ°üÀ¨ ArrayList ºÍ Vector£¬ËüÃÇÊǿɱä´óСµÄÁÐ±í£¬±È½ÏÊʺϹ¹½¨¡¢´æ´¢ºÍ²Ù×÷ÈκÎÀàÐͶÔÏóµÄÔªËØÁÐ±í¡£ List ÊÊÓÃÓÚ°´ÊýÖµË÷Òý·ÃÎÊÔªËØµÄÇéÐΡ£
Map ÌṩÁËÒ»¸ö¸üͨÓõÄÔªËØ´æ´¢·½·¨¡£ Map ¼¯ºÏÀàÓÃÓÚ´æ´¢ÔªËØ ......