亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IO流知識小結(一)

2019-11-14 09:15:44
字體:
來源:轉載
供稿:網友

輸出流 這里寫圖片描述

輸入流 這里寫圖片描述

File類 這里寫圖片描述

File類學習代碼package com.imooc.file;import java.io.File;import java.io.IOException;public class FileDemo { public static void main(String[] args) { //創建File對象的三種構造方法,由于反斜杠代表轉義字符,因此兩個反斜杠才能代表一個真正的反斜杠的作用 /* * File(String pathname) * ——通過將給定的路徑名??字符串轉換為抽象路徑名來創建新的文件實例。 * File(String parent, String child) * ——從父抽象路徑名和子路徑名字符串創建新的文件實例。 * 注意File類對象指向的路徑不需要一定存在 */ File file1=new File("G://imooc//io//score.txt");//方法一 File file2=new File("G://imooc","io//score.txt");//方法二 //方法3 /* * public File(File parent,String child) */ File file3=new File("G://imooc"); File file4=new File(file3,"io//score.txt"); //判斷是文件還是目錄 /* * public boolean isDirectory() * ——測試此抽象路徑名所表示的文件是否為目錄。 * public boolean isFile() * ——測試此抽象路徑名所表示的文件是否為文件。 */ System.out.字節輸入輸出流 一、字節流 這里寫圖片描述 1、字節輸入流類及其子類 之后的代碼重點學習文件輸入流和緩沖輸入流,字符輸入流等其他流可以對比著學習,基本上是大同小異。 這里寫圖片描述 (1)文件輸入流及其常用方法 這里寫圖片描述 這里寫圖片描述

字節輸入流之文件輸入流學習代碼一package com.imooc.input_output_stream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class FileInputStreamDemo1 { public static void main(String[] args) { //創建一個FileInputStream對象 /* * 兩種常用構造方法: * public FileInputStream(File file) throws FileNotFoundException * public FileInputStream(String name) throws FileNotFoundException */ try { //由于imooc.txt是存放在這個工程目錄下的,是相對路徑,因此直接寫文件名即可 FileInputStream fis=new FileInputStream("imooc.txt"); /* * public int read() throws IOException * ——從此文件輸入流讀取"一個"字節,返回讀取的字節數據. * 注意,讀取一個字節后就不會再讀取這個字節了,相當于水管中取水滴 * 如果第二遍執行read方法那么讀取的就是下一個字節了 */ int n; while((n=(fis.read()))!=-1)//讀取的字節為-1時,說明讀到了文件的末尾 { System.out.print((char) n);//將讀到的字節轉換為對應的字符 } /* * public void close() throws IOException * ——關閉此文件輸入流,并釋放與流相關聯的任何系統資源。 * 要養成隨手關閉輸入流的習慣 */ fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) //由于FileNotFoundException是IOException的子類,因此IOException要放后面 { e.printStackTrace(); } }}字節輸入流之文件輸入流學習代碼二package com.imooc.input_output_stream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class FileInputStreamDemo2 { public static void main(String[] args) { try { FileInputStream fis=new FileInputStream("imooc.txt"); /* * public int read(byte[] b) throws IOException * ————從該輸入流中最多讀取b.length個字節的數據并存放在字節數組b中,返回實際讀取的字節數 * public int read(byte[] b,int off,int len) throws IOException * ————從輸入流中最多讀取len個字節的數據,并將其存放在字節數組b中,但放入數組b中時,從index為off的位置開始放 * 并返回實際讀取的字節數 */ byte[] b=new byte[100]; fis.read(b);//等價于fis.read(b,0,12) //將字節數組轉換為字符串輸出,利用之前學過的String類構造方法public String(byte[] bytes) System.out.println(new String(b)); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

2、字節輸出流及其子類 這里寫圖片描述 (1)、文件輸出流及其常用方法 這里寫圖片描述

字節輸出流之文件輸出流學習代碼一package com.imooc.input_output_stream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStreamDemo1 { public static void main(String[] args) { try { /* * public FileOutputStream(String name) throws FileNotFoundException * ————用這種構造方法創建的輸出流輸出字節時會覆蓋要寫入文件原有的數據 * public FileOutputStream(File file,boolean append) throws FileNotFoundException * ————用這種構造方法創建的輸出流輸出輸出字節時,若append為true則在要寫入文件最后寫入新輸出的數據,否則覆蓋 */ FileOutputStream fos=new FileOutputStream("imooc.txt"); /* * public void write(int b) throws IOException * ————將指定的字符輸出到輸出流中,其中b既可以代表字節,也可以代表字符 */ fos.write(50); fos.write('a');//字符是可以和整型之間相互轉換的 fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}字節輸出流之文件輸出流學習代碼二package com.imooc.input_output_stream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStreamDemo2 { public static void main(String[] args) { try { /* * public FileOutputStream(String name) throws FileNotFoundException * ————用這種構造方法創建的輸出流輸出字節時會覆蓋要寫入文件原有的數據 * public FileOutputStream(File file,boolean append) throws FileNotFoundException * ————用這種構造方法創建的輸出流輸出輸出字節時,若append為true則在要寫入文件最后寫入新輸出的數據,否則覆蓋 */ FileOutputStream fos=new FileOutputStream("imooc.txt",true); /* * public void write(int b) throws IOException * ————將指定的字符輸出到輸出流中,其中b既可以代表字節,也可以代表字符 */ fos.write(50); fos.write('a');//字符是可以和整型之間相互轉換的 fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}字節輸出流之文件輸出流學習代碼三package com.imooc.input_output_stream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStreamDemo3 { public static void main(String[] args) { //文件拷貝,實際上就是字節數據經輸入流輸入再經輸出流輸出到另一個文件的過程 try { //創建讀取圖片數據的輸入流 FileInputStream fis=new FileInputStream("happy.png"); //創建輸出圖片數據的輸出流 FileOutputStream fos=new FileOutputStream("happycopy.png"); int n; byte[] b=new byte[2048]; /* * public void write(byte[] b,int off,int len) throws IOException * ————向輸出流中輸出字節數組b中off位置開始的長度為len的字節數據 */ while((n=fis.read(b))!=-1) { fos.write(b,0,n);//用這種多參數的write方法可以保證不會寫入多余的數據 } fis.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

3、緩沖流 這里寫圖片描述

緩沖流學習代碼package com.imooc.input_output_stream;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class BufferDemo { public static void main(String[] args) { try { FileOutputStream fos=new FileOutputStream("imooc.txt"); //創建緩沖輸出流,將文件輸出流和緩沖輸出流連接 /* * public BufferedOutputStream(OutputStream out) * ————創建新的緩沖輸出流,以將數據寫入指定的基礎輸出流。 */ BufferedOutputStream bos=new BufferedOutputStream(fos); FileInputStream fis=new FileInputStream("imooc.txt"); //將文件輸入流和緩沖輸入流連接 /* * public BufferedInputStream(InputStream in) * ————創建緩沖輸入流并保存其參數————基礎輸入流,供以后使用。 */ BufferedInputStream bis=new BufferedInputStream(fis); /* * public void write(int b) throws IOException * ————將指定的字節寫入此緩沖輸出流,但實際是存儲在緩沖輸出流的內部緩沖區buf中,只有緩沖區滿了 * 才會自動執行寫操作,因此需要手動強制清空內部緩存區執行寫操作 * public void flush() throws IOException * ————刷新此緩沖輸出流,這將強制任何緩沖的輸出字節被寫出到基礎輸出流。只有具有緩沖區的輸出流才需要使用此方法強制執行寫數據的操作,但建議在每一個write語句后都加一句flush以防萬一 */ bos.write(50); bos.write('a'); bos.flush(); bos.close();//釋放資源 /* * 緩沖輸入流的read方法與文件輸入流的read方法基本一致 */ System.out.println(bis.read()); System.out.println((char) bis.read()); bis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

二、字符流

這里寫圖片描述 字符輸入流和輸出流 這里寫圖片描述 這里寫圖片描述 由于字符流和字節流方法基本一致,只有處理數據的不同,因此不單獨寫學習代碼了,直接拿出字節字符轉換流的代碼。字節流轉換成字符流。

package com.imooc.reader_writer;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class ChangeStreamDemo { public static void main(String[] args) { try { FileInputStream fis=new FileInputStream("imooc.txt"); /* * 將字節輸入流轉換為字符輸入流 * public InputStreamReader(InputStream in) */ InputStreamReader isr=new InputStreamReader(fis); int n; char[] cbuf=new char[10]; /* * public int read() throws IOException * ————從輸入流讀取單個字符,返回讀取的字符數據(轉換為int類型) * public int read(char[] cbuf) throws IOException * ————從輸入流讀取最多cbuf.length個字符的數據,存放在字符數組cbuf中,返回實際讀取的字符數 * public String(char[] value,int offset,int count) * ————從字符數組value的offset位置開始,創建一個長度為count的字符串 */ /* * 以下注釋代碼為讀取的步驟,由于這個步驟會導致下面的輸出流的例子出錯,因此注釋掉 while((n=isr.read(cbuf))!=-1) { System.out.print(new String(cbuf,0,n));//保證最后一次在未將數組cbuf存滿的時候也能正確輸出 } */ //字節輸出流轉字符輸出流 FileOutputStream fos=new FileOutputStream("imooc1.txt"); /* * public OutputStreamWriter(OutputStream out) * ————將基礎字節輸出流轉換為字符輸出流 * public void write(char[] cbuf,int off,int len) throws IOException * ————將cbuf字符數組中第off個位置開始長度為len的字符串輸出到輸出流中 */ OutputStreamWriter osw=new OutputStreamWriter(fos); while((n=isr.read(cbuf))!=-1) { osw.write(cbuf,0,n); osw.flush();/*所有含有緩沖區的輸出流的write方法都是在輸出流的未滿時不自動執行write操作的, 因此需要手動清空強制執行write操作才能將輸出流中的數據寫入文件,之前學習的字節輸出流中沒有flush是因為 后面加了close();但是實際中最好兩個都加上 */ } fis.close(); fos.close(); isr.close(); osw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

三、對象序列化及反序列化 步驟 這里寫圖片描述 用到的類 這里寫圖片描述

對象序列化學習代碼之Goods商品類package com.imooc.serial;import java.io.Serializable;/*創建一個實現序列化接口的類*/public class Goods implements Serializable{ private String goodsId; private String goodsName; private double price; public Goods() { } public Goods(String goodsId, String goodsName, double price) { this.goodsId = goodsId; this.goodsName = goodsName; this.price = price; } public String getGoodsId() { return goodsId; } public void setGoodsId(String goodsId) { this.goodsId = goodsId; } public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Goods [goodsId=" + goodsId + ", goodsName=" + goodsName + ", price=" + price + "]"; }}對象序列化學習代碼之商品測試類package com.imooc.serial;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class GoodsTest { public static void main(String[] args) { //定義Goods類對象,將對象寫入文件中,再讀出來判斷是否寫入成功 Goods goods1=new Goods("gd001","電腦",3000); try { /* * public ObjectOutputStream(OutputStream out) throws IOException * ————創建一個對象輸出流以寫入指定的輸出流 * public final void writeObject(Object obj) throws IOException * ————將一個指定的對象寫入對象輸出流 */ //將對象信息寫入文件 FileOutputStream fos=new FileOutputStream("imooc.txt"); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(goods1);//將goods1對象寫入文件imooc.txt中 oos.flush(); oos.close(); fos.close(); /* * public final Object readObject() throws IOException,ClassNotFoundException * ————從對象輸入流讀出一個對象 */ //將對象信息從文件讀出來 FileInputStream fis=new FileInputStream("imooc.txt"); ObjectInputStream ois=new ObjectInputStream(fis); Goods goods2=(Goods)ois.readObject();//由于readObject方法返回的是Object類,因此要強制轉換 System.out.println(goods2); fis.close(); ois.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }}

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女久久| 午夜精品久久久久久久99热浪潮| 色琪琪综合男人的天堂aⅴ视频| 亚洲成人激情视频| 欧美精品videos| 亚洲精品资源美女情侣酒店| 久久久av亚洲男天堂| 欧美激情第三页| 国产一区二区丝袜| 欧美性在线视频| 欧美日韩人人澡狠狠躁视频| 亚洲午夜久久久影院| 亚洲女人天堂视频| 亚洲欧美激情精品一区二区| 九九综合九九综合| 91在线观看免费高清| 九九久久久久久久久激情| 欧美大尺度电影在线观看| 亚洲综合第一页| 国产精品一久久香蕉国产线看观看| 久久人人爽人人| 热久久这里只有| 亚洲第一精品福利| 久久久精品视频在线观看| 91在线无精精品一区二区| 91精品国产91久久久久久| 欧美一区二区大胆人体摄影专业网站| 色综合久综合久久综合久鬼88| 国产成人高清激情视频在线观看| 亚洲成**性毛茸茸| 国产91精品久久久久| 欧美成人在线网站| 欧美视频中文字幕在线| 成人看片人aa| 欧美天天综合色影久久精品| 懂色aⅴ精品一区二区三区蜜月| 欧美国产精品va在线观看| 97国产成人精品视频| 日韩免费av片在线观看| 亚洲免费视频网站| 国产精品欧美亚洲777777| 91在线中文字幕| 欧美性猛交xxxxx水多| 92版电视剧仙鹤神针在线观看| 久久久免费精品视频| 欧美精品情趣视频| 91久久精品国产91性色| 国产成人精品国内自产拍免费看| 一区二区欧美日韩视频| 法国裸体一区二区| 97人人做人人爱| 97超级碰碰人国产在线观看| 久久久人成影片一区二区三区观看| 国产成人精品a视频一区www| 欧美午夜性色大片在线观看| 国产日韩在线看片| 5566日本婷婷色中文字幕97| 欧美激情中文网| 欧美诱惑福利视频| 国内外成人免费激情在线视频网站| 久久偷看各类女兵18女厕嘘嘘| 亚洲第一福利在线观看| 日韩在线欧美在线| 高清欧美性猛交xxxx黑人猛交| 亚洲美女av在线播放| 中文字幕日韩有码| 国产精品情侣自拍| 国产精品美女午夜av| 最近2019年中文视频免费在线观看| 亚洲一区二区三区在线视频| 92国产精品久久久久首页| 亚洲精品女av网站| 日韩美女在线观看| 国产精品成人av在线| 国产日产欧美a一级在线| 国产精品无av码在线观看| 欧美三级xxx| 欧美视频中文字幕在线| 亚洲成人av在线播放| 久久97精品久久久久久久不卡| 欧美与欧洲交xxxx免费观看| 国内精品国产三级国产在线专| 欧美一级片一区| 欧美富婆性猛交| 亚洲缚视频在线观看| 精品国产一区二区三区久久| 欧美激情一级精品国产| 一区二区中文字幕| 91成人天堂久久成人| 日韩av高清不卡| 亚洲国产精品久久| 欧美成人免费视频| 91在线观看免费高清完整版在线观看| 亚洲综合在线做性| 欧美成人免费全部| 国产剧情日韩欧美| 国产成人免费av电影| 日韩av电影在线播放| 色偷偷av一区二区三区乱| 97视频网站入口| 高清日韩电视剧大全免费播放在线观看| 青青草一区二区| 国内免费精品永久在线视频| 自拍偷拍亚洲欧美| 国产精品一区二区3区| 亚洲久久久久久久久久| 欧美性猛交xxxx久久久| 成人亲热视频网站| 自拍偷拍亚洲欧美| 中文字幕精品www乱入免费视频| 久国内精品在线| 中文字幕日韩在线播放| 国产精品丝袜白浆摸在线| 麻豆乱码国产一区二区三区| 日韩中文字幕国产| 狠狠做深爱婷婷久久综合一区| 久久精品人人爽| 国产精品九九九| 成人h片在线播放免费网站| 欧美一区二区三区免费视| 欧美精品18videos性欧| www.久久久久| 亚洲最大成人在线| 日本久久久久久久久| 欧美激情亚洲自拍| 日韩女优在线播放| 日韩精品在线观| 日韩免费高清在线观看| 亚洲欧洲激情在线| 亚洲国产精品热久久| 欧美电影在线观看| 亚洲欧美综合另类中字| 亚洲自拍偷拍福利| 国产精品中文字幕在线| 国产精品羞羞答答| 久热99视频在线观看| 日韩在线欧美在线国产在线| 亚洲色图17p| 国产欧美日韩免费看aⅴ视频| 色香阁99久久精品久久久| 欧美久久久精品| 最好看的2019年中文视频| 久久久国产成人精品| 久久久久国产精品免费网站| 久久久久久中文字幕| 日韩电影在线观看永久视频免费网站| 亚洲春色另类小说| 国产精品久久久久久久9999| 国产精品亚发布| 亚洲欧美制服中文字幕| 国产自产女人91一区在线观看| 欧美激情在线视频二区| 亚洲精品大尺度| 韩剧1988在线观看免费完整版| 久久频这里精品99香蕉| 久久久久久999| 亚洲国产精品网站| 亚洲欧洲日产国产网站| 欧美激情国产精品| 国产精品自拍视频| 亚洲国产精品美女| 国产精品美女在线观看| 97视频在线观看播放| 亚洲成年人在线|