IO流是用于讀寫數據的輸入/輸出流。IO流是Java中對輸入和輸出操作的抽象,將所有類型的輸入和輸出數據抽象為流的形式,可以方便地進行數據的讀取和寫入。
字節流(InputStream和OutputStream):字節流用于讀寫字節數據,可以處理任何類型的數據,包括文本、圖片、音頻等。常用的字節流有FileInputStream、FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream等。
字符流(Reader和Writer):字符流用于讀寫字符數據,可以方便地處理文本數據,避免了字符集轉換的麻煩。常用的字符流有FileReader、FileWriter、StringReader、StringWriter等。
此外,還可以按照數據的讀寫方向和數據來源分為輸入流和輸出流。輸入流用于從數據源中讀取數據,輸出流用于向數據源中寫入數據。
輸入流(InputStream和Reader):輸入流用于讀取數據,從文件、網絡、內存等數據源中讀取數據。
輸出流(OutputStream和Writer):輸出流用于寫入數據,將數據寫入文件、網絡、內存等數據源。
根據讀取和寫入數據的單位和方式,還可以分為緩沖流和非緩沖流。
緩沖流(BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter):緩沖流可以提高IO性能,通過內部的緩沖區減少訪問底層IO的次數。
非緩沖流(InputStream、OutputStream、Reader、Writer):非緩沖流直接讀取或寫入數據,沒有緩沖區的概念,每次訪問底層IO。
在使用IO流時,需要根據實際需求選擇不同的流類型,避免在處理數據時出現錯誤或性能問題。