引言
? ? ? ? 概念:"流"是一組有順序的,有起點,有終點的字節(jié)集合.是對數(shù)據(jù)傳輸?shù)目偡Q或抽象概念."流"它既是數(shù)據(jù)在兩設(shè)備間的傳輸,根據(jù)數(shù)據(jù)傳輸?shù)奶匦猿橄鬄楦鞣N類,方便進行數(shù)據(jù)操作.
Io流的分類:
根據(jù)處理數(shù)據(jù)的不同分為:字節(jié)流與字符流.
根據(jù)流向的不同分為:輸入流與輸出流.
字符流與字節(jié)流的區(qū)別:
字符流一般處理純文本的數(shù)據(jù)
字節(jié)流,能處理包括(圖片,文本,Avi...等)所有數(shù)據(jù)的類型.
#????純文本數(shù)據(jù)一般建議,用字符流處理.
輸入字節(jié)流:
InputStream是所有的輸入字節(jié)流的父類,它是一個抽象類.
常用的輸入字節(jié)流有:ByteArrayInputStream , StringBufferInputStream , ?FileInputStream.
輸出字節(jié)流:
OutputStream是所有輸出字節(jié)流的父類,它是一個抽象類.
常用的輸出字節(jié)流有: ByteArrayOutputStream , FileOutputStream.
字節(jié)流示例:
//字節(jié)流讀取
class ByteTest {
pulic staic void mian(String [] args) {
? ? ? ? String fileName = "D:" + File.separate + "BaytText.txt";
? ? ? ? File file = new File(fileName);
? ? ? ? InputStream ?in = new FileInputStream(file);
? ? ? ? byte[] ? b = new bybe[];
? ? ? ? in.read(b);
? ? ? ? in.close;
? ? ? ?system.out.println(new String(b));
? ? ? ? }
}
輸入字符流:
Reader是所有的輸入字符流的父類,它是一個父類.
常用的輸入字符流有: CharReader,StringReader
輸出字符流:
Writer是所有的輸出字符流的父類,它是一個抽象類.
常用的輸出字符流有: CharArray , StringWriter.
字符流示例:
// 字符流讀取
? ? ? class ReaderTest {
? ? ? ? ? ? ? ? pulic staic void mian(String[] args) {
? ? ? ? ? ? ? ? String fileName = "D:" + File.separator + "hello.txt";
? ? ? ? ? ? ? ? ?char[] ch = new char[100];
? ? ? ? ? ? ? ? ?Reader reader = new FileReader(fileName);
? ? ? ? ? ? ? ? ?int count = reader.reader(ch);
? ? ? ? ? ? ? ? ?reader.close().
? ? ? ? ? ? ? ? ?system .out .println("文件的長度:" + count);
? ? ? ? ? ? ? ? ?system.out.println("文件的內(nèi)容:" + new ?String(ch,0,count));
? ? }
}
關(guān)于字符流與字節(jié)流它們之間能相互轉(zhuǎn)換,通過一個叫做"轉(zhuǎn)化流"的流,來進行.
#? ? InputStreamReader:字節(jié)到字符的橋梁
#? ? OutputStreamWriter:字符到字節(jié)的橋梁