整流橋KBPC1010-ASEMI如何測量好壞之壓降測試法
阿新 • • 發佈:2021-10-28
一、Java中對資料流進行具體化和實現,關於Java資料流一般關注以下幾個點:
1. 流的方向 從外部到程式,稱為輸入流;從程式到外部,稱為輸出流
2. 流的資料單位 程式以位元組作為最小讀寫資料單元,稱為位元組流,以字元作為最小讀寫資料單元,稱為字元流
二、Java流類圖結構:
三、常見位元組流
1、InputStream:是表示位元組輸入流的所有類的超類 FileInputStream:從某個檔案中獲得輸入位元組流 FileInputStream:用於讀取諸如影象資料之類的原始位元組流。要讀取字元流,請考慮使用 FileReader FilterInputStream:包含其他一些輸入流,它將這些流用作其基本資料來源,它可以直接傳輸資料或提供一些額外的功能 BufferedInputStream:該類實現緩衝的輸入流 Stream: ObjectInputStream: PipedInputStream: 2、 OutputStream:此抽象類是表示輸出位元組流的所有類的超類。 FileOutputStream:是用於將資料寫入 File 或 FileDescriptor 的輸出流。 FilterOutputStream:此類是過濾輸出流的所有類的超類。 BufferedOutputStream:該類實現緩衝的輸出流。 PrintStream: DataOutputStream: ObjectOutputStream: PipedOutputStream:
四、常見字元流
1、 Reader:用於讀取字元流的抽象類。子類必須實現的方法只有 read(char[], int, int) 和 close() BufferedReader:從字元輸入流中讀取文字,緩衝各個字元,從而實現字元、陣列和行的高效讀取。 可以指定緩衝區的大小,或者可使用預設的大小。大多數情況下,預設值就足夠大了 LineNumberReader:跟蹤行號的緩衝字元輸入流。此類定義了方法 setLineNumber(int) 和 getLineNumber(),它們可分別用於設定和獲取當前行號 InputStreamReader:是位元組流通向字元流的橋樑:它使用指定的 charset 讀取位元組並將其解碼為字元。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平臺預設的字符集 FileReader:用來讀取字元檔案的便捷類。此類的構造方法假定預設字元編碼和預設位元組緩衝區大小都是適當的。要自己指定這些值,可以先在 FileInputStream 上構造一個 InputStreamReader CharArrayReader: StringReader: 2、Writer:寫入字元流的抽象類。子類必須實現的方法僅有 write(char[], int, int)、flush() 和 close() BufferedWriter:將文字寫入字元輸出流,緩衝各個字元,從而提供單個字元、陣列和字串的高效寫入 OutputStreamWriter:是字元流通向位元組流的橋樑:可使用指定的 charset 將要寫入流中的字元編碼成位元組。它使用的字符集可以由名稱指定或顯式給定,否則將接受平臺預設的字符集 FileWriter:用來寫入字元檔案的便捷類。此類的構造方法假定預設字元編碼和預設位元組緩衝區大小都是可接受的。要自己指定這些值,可以先在 FileOutputStream 上構造一個 OutputStreamWriter PrintWriter: CharArrayWriter: StringWriter:
五、位元組流
1、位元組輸出流OutputStream FileOutputStream類,即檔案輸出流,是用於將資料寫入 File public static void main(String[] args) throws IOException { //建立儲存資料的檔案。 File file = new File("E:\\file.txt"); //建立一個用於操作檔案的位元組輸出流物件。一建立就必須明確資料儲存目的地。 //輸出流目的是檔案,會自動建立。如果檔案存在,則覆蓋。 FileOutputStream fos = new FileOutputStream(file); //呼叫父類中的write方法。 byte[] data = "abcde".getBytes(); fos.write(data); //關閉流資源。 fos.close(); } 2、位元組輸入流InputStream FileInputStream 從檔案系統中的某個檔案中獲得輸入位元組 public class FileInputStreamDemo2 { public static void main(String[] args) throws IOException { /* * 演示第二個讀取方法, read(byte[]); */ File file = new File("E:\\file.txt"); // 建立一個位元組輸入流物件,必須明確資料來源,其實就是建立位元組讀取流和資料來源相關聯。 FileInputStream fis = new FileInputStream(file); //建立一個位元組陣列。 byte[] buf = new byte[1024];//長度可以定義成1024的整數倍。 int len = 0; while((len=fis.read(buf))!=-1){ System.out.println(new String(buf,0,len)); } fis.close(); } } public static void main(String[] args) throws Exception{ //1,明確源和目的。 File srcFile = new File("E:\\vuepress\\myblog\\docs\\.vuepress\\public\\images\\66.ico"); File destFile = new File("E:\\vuepress\\myblog\\docs\\.vuepress\\public\\images\\66copy1.ico"); //2,明確位元組流 輸入流和源相關聯,輸出流和目的關聯。 FileInputStream fis = new FileInputStream(srcFile); FileOutputStream fos = new FileOutputStream(destFile); //3, 使用輸入流的讀取方法讀取位元組,並將位元組寫入到目的中。 //定義一個緩衝區。 byte[] buf = new byte[1024]; int len = 0; while ((len = fis.read(buf)) != -1) { fos.write(buf, 0, len);// 將陣列中的指定長度的資料寫入到輸出流中。 } //4,關閉資源。 fos.close(); fis.close(); }
六、字元流
1、字元輸入流Reader
FileReader類:用於讀取諸如影象資料之類的原始位元組流。要讀取字元流,請考慮使用 FileReader
public static void main(String[] args) throws IOException {
//給檔案中寫中文
writeText();
//讀取檔案中的中文
readText();
}
//讀取中文
public static void readText() throws IOException {
FileReader fr = new FileReader("E:\\test\\a.txt");
int ch = 0;
while((ch = fr.read())!=-1){
//輸出的字元對應的編碼值
System.out.println(ch);
//輸出字元本身
System.out.println((char)ch);
}
}
//寫中文
public static void writeText() throws IOException {
FileOutputStream fos = new FileOutputStream("E:\\test\\a.txt");
fos.write("林子很大".getBytes());
fos.close();
}
2、字元輸入流Writer
public class FileWriterDemo {
public static void main(String[] args) throws IOException {
//演示FileWriter 用於操作檔案的便捷類。
FileWriter fw = new FileWriter("E:\\text\\fw.txt");
fw.write("你好,六脈神劍");//這些文字都要先編碼。都寫入到了流的緩衝區中。
fw.flush();//重新整理
fw.close();// 關閉之前需要重新整理它
}
}
flush():將流中的緩衝區緩衝的資料重新整理到目的地中,重新整理後,流還可以繼續使用
close():關閉資源,但在關閉前會將緩衝區中的資料先重新整理到目的地,否則丟失資料,然後在關閉流。流不可以使用。如果寫入資料多,一定要一邊寫一邊重新整理,最後一次可以不重新整理,由close完成重新整理並關閉