大理微網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣公司簡介
目錄
一、數(shù)據(jù)流概念
1.輸入輸出的概念?
2.流的概念
3.流的操作
二、常用的流分類
三、文件輸入輸出流
1.FileReader和FileWriter
2.FileInputStream和FileOutStream
四、復(fù)制文件
一、數(shù)據(jù)流概念
1.輸入輸出的概念?
? ? ? ? 輸入輸出技術(shù)用于處理設(shè)備之間的數(shù)據(jù)傳輸,指的是程序和外部設(shè)備或者其他計算機進行數(shù)據(jù)交換的過程,比如讀/寫文件、網(wǎng)絡(luò)通信等。將外部數(shù)據(jù)讀取到內(nèi)存中稱為輸入,將內(nèi)存數(shù)據(jù)輸出到磁盤、光盤中稱為輸出。
2.流的概念
? ? ? ? Java程序中,對于數(shù)據(jù)的輸出輸入操作以“流”的方式進行。java.io包下提供了各種“流”類接口,用于獲取不同種類的數(shù)據(jù),并通過標準的方法輸入或輸出數(shù)據(jù)。
3.流的操作
import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamTest {public static void main(String[] args) {// 確定源String path = "hello.txt";FileInputStream fis = null;try {// 打開流fis = new FileInputStream(path);// 操作流int res = 0;while ((res = fis.read()) != -1) {System.out.println((char) res);// 轉(zhuǎn)換類型為char}} catch (IOException e) {e.printStackTrace();} finally {try {// 關(guān)閉流fis.close();} catch (IOException e) {e.printStackTrace();}}}
}
二、常用的流分類
分類 | 字節(jié)輸入流 | 字節(jié)輸出流 | 字符輸入流 | 字符輸出流 |
抽象父類 | InputStream | OutputStream | Reader | Writer |
訪問文件 | FileInputStream | FileOutStream | FileReader?? ? | FileWriter |
訪問數(shù)值 | ByteArrayInputStream | ByteArrayOutStream | CharArrayReader | CharArrayWriter |
訪問管道 | PipedInputStream?? ? | PipedOutStream?? ? | PipedReader?? ? | PipedWriter |
訪問字符串 | StringReader?? ? | StringWriter | ||
緩沖流 | BufferedInputStream?? ? | BufferedOutputStream?? ? | BufferedReader?? ? | BufferedWriter |
轉(zhuǎn)換流 | InputStreamReader?? ? | OutputStreamWriter | ||
對象流 | ObjectInputStream?? ? | ObjectOutputStream?? ? ?? ?? | ||
裝飾流 | FilterInputStream?? ? | FilterOutputStream?? ? | FilterReader?? ? | FilterWriter |
打印流 | PrintStream?? ? ?? ? | PrintWriter | ||
數(shù)據(jù)過濾流 | DataInputStream?? ? | DataOutputStream |
? ? ? ? InputStream和Reader是所有輸入流的基類,OutputStream和Writer是所有輸出六的基類。InputStream和OutputStream是字節(jié)流的抽象父類,以字節(jié)為單位進行I/O操作,Reader和Writer是字符流的抽象父類,以字符為單位進行I/O操作。
三、文件輸入輸出流
1.FileReader和FileWriter
? ? ? ? FileReader和FileWriter分別繼承自Reader和Writer,以字符為的那位廣泛用于文件操作的節(jié)點流。FileReader類用于從文本讀數(shù)據(jù),每次度一個字符或者一個字符數(shù)組;FileWriter類用于從文本文件寫數(shù)據(jù),每次寫入一個字符、一個數(shù)組或者一個字符串。
2.FileInputStream和FileOutStream
? ? ? ? FileInputStream和FileOutStream分別繼承自InputStream和FileOutStream,以字節(jié)為單位廣泛用于文件操作的節(jié)點流。FileInputStream類用于從文件讀取數(shù)據(jù),FileOutStream類用于將數(shù)據(jù)寫入文件
四、復(fù)制文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class Copy {public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;try {// 打開流fis = new FileInputStream("hello.txt");//路徑fos = new FileOutputStream("hello1.txt");byte[] bytes = new byte[10];// 操作流while (fis.read(bytes) != -1) {fos.write(bytes);fos.flush();}System.out.println("復(fù)制完成!");} catch (Exception e) {e.printStackTrace();} finally {try {if (null != fos)// 關(guān)閉流fos.close();} catch (IOException e) {e.printStackTrace();}try {if (null != fis)fis.close();} catch (IOException e) {e.printStackTrace();}}}
}