gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

java中的IO流如何分類

java中的IO流如何分類

一、IO:上傳下載,寫入寫出

流: 一連串流動的數據,以先入先出的方式進行流動,管道,以程序為中心、程序與網絡|文件|服務器|數組..

分類

1)按照流向:

輸入流;輸出流

2)操作單元分:

字節流 (萬能流):任何內容都可以轉為字節,可以傳輸文本,圖片,音頻;字符流 :只能操作純文本數據

3)按照功能:

節點流 : 包裹源頭,實現基本功能;功能流 : 對節點流增強性能,提高效率

4)各個分類之間是相輔相成的

字節流

(1)字節輸入流 : InputStream 此抽象類是表示字節輸入流的所有類的超類;FileInputStream 從文件系統中的某個文件中獲得輸入字節

//字節流輸入 InputStream  //導包	導包快捷鍵: ctrl+shift+o import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class Demo01 { 	public static void main(String[] args) throws IOException { 		//FileInputStream(String name)  		通過打開一個到實際文件的連接來創建一個 FileInputStream,該文件通過文件系統中的路徑名 name 指定 		//FileInputStream(File file)  		通過打開一個到實際文件的連接來創建一個 FileInputStream, 		該文件通過文件系統中的 File 對象 file 指定 		InputStream is=new FileInputStream(new File("D:/test.txt"));//創建D盤符的根目錄下的文件 		System.out.println(is); 		//方式1: int read() 讀入數據 一個字節一個字節讀入 		/*int num=is.read(); 		System.out.println((char)num); 		num=is.read(); 		System.out.println((char)num); 		System.out.println((char)(is.read()));*/ 		//方式2:使用循環,循環讀入,可以簡化代碼,重復代碼只寫一次,但還是一個字節一個字節的讀入 		/*int num=-1; 		while((num=is.read())!=-1){ 			System.out.println((char)num); 		}*/ 		//方式3:int read(byte[] b) 一個字節數組一個字節數組的讀入 		//返回值: 返回讀入到字節數組中數據的個數,沒有讀到返回-1 		byte[] car=new byte[1]; 		//int len=is.read(car);  		int len=-1; 		while((len=is.read(car))!=-1){ 			System.out.println(new String(car,0,len)); 		} 		//關閉 		is.close(); 	} }

(2)字節輸出流: OutputStream 此抽象類是表示輸出字節流的所有類的超類;FileOutputStream 文件輸出流是用于將數據寫入 File 的輸出流

//字節輸出流 OutputStream //導包	導包快捷鍵: ctrl+shift+o import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Demo02 { 	public static void main(String[] args) { 		//FileOutputStream(String name)創建一個向具有指定名稱的文件中寫入數據的輸出文件流 		//FileOutputStream(String name,boolean append)   		創建一個向具有指定 name 的文件中寫入數據的輸出文件流 		//FileOutputStream(File file,boolean append)  		創建一個向指定 File 對象表示的文件中寫入數據的文件輸出流 		//boolean append	返回值:true追加,false不追加(默認false) 		OutputStream os=null; 		//try...catch(){}	捕捉異常,處理異常 		try { 			//1.選擇流 			os=new FileOutputStream("D:/hhh.txt",hhtrue);  			//文件不存在,系統會自動幫我們創建,但文件夾不會 			//2.準備數據 			String str="要好好學習,天天向上...";  			byte[] c和=str.getBytes(); 			//3.寫出 void write(byte[] b)   			os.write(ch); 			//4.刷出 			os.flush(); 		} catch (FileNotFoundException e) { 			e.printStackTrace(); 		} catch (IOException e) { 			e.printStackTrace(); 		} finally{ 			//5.關閉 			try {//預防空指針異常 				if(os!=null){ 					os.close(); 				} 			} catch (IOException e) { 				e.printStackTrace(); 			} 		} 	} }

字符流

只能操作純文本

1)節點流:

(1)字符輸入流:Reader 讀取字符流的抽象類;FileReader 用來讀取字符文件的便捷類

//字符輸入流 Reader //導包	導包快捷鍵: ctrl+shift+o import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class Demo03 { 	public static void main(String[] args) { 		//FileReader(String fileName)  		Reader rd=null; 		try { 			//1.選擇流 			rd=new FileReader("D:/hehe.txt");//創建D盤符的根目錄下的文件 			//2.讀入 			//方法1:int read() 讀取單個字符。  			/*System.out.println((char)rd.read()); 			System.out.println((char)rd.read()); 			System.out.println((char)rd.read()); 			System.out.println((char)rd.read());*/ 			int len=-1;  //存儲讀到的數據  如果為-1,證明已達到末尾 			//方法2: 			/*while(-1!=(len=rd.read())){ 				System.out.println((char)len); 			}*/ 			//方法3:int read(char[] cbuf)  將字符讀入數組。 			char[] car=new char[1024]; 			while((len=rd.read(car))!=-1){ 				System.out.println(new String(car,0,len)); 			} 		} catch (FileNotFoundException e) { 			e.printStackTrace(); 		} catch (IOException e) { 			e.printStackTrace(); 		} finally{ 			if(rd!=null){ 				try { 					//關閉功能 					rd.close(); 				} catch (IOException e) { 					e.printStackTrace(); 				} 			} 		}  	} }

(2)字符輸出流: Writer 寫入字符流的抽象類;FileWriter 用來寫入字符文件的便捷類

//字符輸出流:Writer //導包	導包快捷鍵: ctrl+shift+o import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; public class CharDemo02 { 	public static void main(String[] args) { 		//FileWriter(File file) 		//默認不追加 		//FileWriter(File file, boolean append)  	 		//FileWriter(String file)   		//FileWriter(String file, boolean append)   		Writer rt=null; 		try { 			//1.選擇流 			rt=new FileWriter("D:/houhou.txt",true); 			//2.寫出 			/*	void write(char[] cbuf)  寫入字符數組  				void write(char[] cbuf, int off, int len) 寫入字符數組的某一部分 				void write(int c) 寫入單個字符 				void write(String str)  寫入字符串  				void write(String str, int off, int len) 寫入字符串的某一部分  			*/ 			rt.write(97); 			rt.write("rn");  		//換行 			rt.write("你真好看!!!!"); 			rt.write("rn"); 			rt.write("你真好看!!!!",2,2); 			rt.write("rn"); 			char[] ch={'a','b','c','d','e'}; 			rt.write(ch); 			rt.write("rn"); 			rt.write(ch,2,3); 			//3.刷出 			rt.flush();		 		} catch (IOException e) { 			e.printStackTrace(); 		} finally{ 			//4.關閉 			if(null!=rt){ 				try { 					rt.close(); 				} catch (IOException e) { 					e.printStackTrace(); 				} 			} 		} 	} }

功能流

緩沖流: 增強功能,提高性能,加快讀寫效率

1)字節流:

BufferedInputStream 字節輸入流緩沖流

BufferedOutputStream 字節輸出流緩沖流

沒有新增方法,可以發生多態使用

//導包 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;  public class BufferedInputStream01 { 	public static void main(String[] args) throws IOException { 		//1.選擇流 		//BufferedInputStream(InputStream in)  		InputStream is=new BufferedInputStream(new FileInputStream("D:/hehe.txt")); 		OutputStream os=new BufferedOutputStream(new FileOutputStream("E:/hengheng.txt") ); 		//2.讀寫 		byte[] car=new byte[1024]; 		int len=-1; 		while((len=is.read(car))!=-1){ 			os.write(car,0,len); 		} 		//3.刷出 		os.flush(); 		//4.關閉 		os.close(); 		is.close(); 	} }

2)字符流:

BufferedReader 字符輸入流緩沖流

新增方法: String readLine() 讀取一個文本行

BufferedWriter 字符輸出流緩沖流

新增方法: void newLine() 寫入一個行分隔符

//導包 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;  public class BufferedReader02 { 	public static void main(String[] args) throws IOException { 		//1.選擇流  導包快捷鍵: ctrl+shift+o 		BufferedReader br=new BufferedReader(new FileReader("D:/hehe.txt")); 		BufferedWriter bw=new BufferedWriter(new FileWriter("D:/ccc.txt")); 		//2.讀寫 		String msg=null; 		while((msg=br.readLine())!=null){ 			bw.write(msg); 			bw.newLine(); 		} 		//3.刷出 		bw.flush(); 		//4.關閉 		bw.close(); 		br.close(); 	} }

Data流(字節節點流)

Data流(字節節點流):

讀寫基本數據類型+String類型數據,是字節流功能流的一種

DataInputStream 新增方法: readXxx()

DataOutputStream 新增方法: writeXxx()

存在新增方法不能發生多態,先寫出再寫入

可能碰到的異常:EOFException 文件有,內容讀入不到,必須讀入的是寫出的源文件

//導包 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;  public class Data01 { 	public static void main(String[] args) throws IOException { 		//調用方法 		write("D:/data.txt"); 		read("D:/data1.txt"); 	} 	//讀入 	public static void read(String path) throws IOException{ 		//1.輸入流 數據類型+數據 		DataInputStream in=new DataInputStream(new  BufferedInputStream(new FileInputStream(path))); 		//2.讀入 		int i=in.readInt(); 		boolean b=in.readBoolean(); 		String s=in.readUTF(); 		System.out.println(i+"-->"+b+"-->"+s); 		//3.關閉 		in.close(); 	} 	//寫出 	public static void write(String path) throws IOException{ 		//1.輸出流 		DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(path))); 		//2.準備數據 		int i=101; 		boolean f=false; 		String s="哈哈"; 		//3.寫出  寫出和讀入的順序要保持一致 		out.writeInt(i); 		out.writeBoolean(f); 		out.writeUTF(s); 		//4.刷出 		out.flush(); 		//5.關閉 		out.close(); 	} }

對象流

Object 保存數據類型+數據

字節的功能流:當想要傳輸|讀寫對象類型數據的時候,可以使用一個對象流

序列化: 把對象類型的數據轉化為可存儲|可傳輸的狀態的過程

ObjectInputStream() 反序列化輸入流 新增方法: readObject()

ObjectOutputStream() 序列化輸出流 新增方法: writeObject()

注意:

1)先序列化后反序列化

2)序列化反序列讀寫順序一致

3)不是所有的類都能序列化 java.io.Serializable 空接口

4)不是所有的屬性都需要序列化 transient

5)static內容不會被序列化

6)如果父類實現Serializable接口,子類中可以序列化所有內容

如果子類實現Serializable接口,但是父類沒有實現,子類只能序列化子類獨有的內容

//導包 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.Arrays; public class ObjectDemo02 { 	public static void main(String[] args) throws IOException, ClassNotFoundException { 		write("D:/object.txt"); 		read("D:/object.txt"); 	} 	//反序列化輸入 	public static void read(String path) throws IOException, ClassNotFoundException{ 		//1.輸入流 		ObjectInputStream is=new ObjectInputStream(new BufferedInputStream(new FileInputStream(path))); 		//2.讀入 		Object p= is.readObject(); 		int[] arr= (int[]) is.readObject(); 		if(p instanceof Person){ 			Person person=(Person)p; 			System.out.println(person.getName()); 		} 		System.out.println(p); 		System.out.println(Arrays.toString(arr)); 		//3,關閉 		is.close(); 	} 	//序列化輸出 	public static void write(String path) throws IOException{ 		//1.輸出對象信息 		ObjectOutputStream os=new ObjectOutputStream(new BufferedOutputStream(new  		FileOutputStream(path))); 		//2.準備數據 		Person p=new Person("aaa",18); 		int[] arr={1,2,3,4}; 		//3.輸出 		os.writeObject(p); 		os.writeObject(arr); 		//4.刷出 		os.flush(); 		//5.關閉 		os.close(); 	} } //接口 class Person implements Serializable{ 	private  String name; 	private static int age; 	public Person() { 	} 	public Person(String name, int age) { 		super(); 		this.name = name; 		this.age = age; 	} 	public String getName() { 		return name; 	} 	public void setName(String name) { 		this.name = name; 	} 	public int getAge() { 		return age; 	} 	public void setAge(int age) { 		this.age = age; 	} 	@Override 	public String toString() { 		return "Person [name=" + name + ", age=" + age + "]"; 	} }

二、File 類

File 類:文件和目錄路徑名的抽象表示形式

提供的功能:操作文件外部的能力,不能操作文件內部的內容

能夠定義真實存在的路徑|文件,不在的也可以定義,所以抽象表現形式

構造器: File(File parent, String child) 根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例

File(String pathname) 通過將給定路徑名字符串轉換為抽象路徑名來創建一個新 File 實例

File(String parent, String child) 根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例

推薦教程:java入門教程

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
久久人人爽人人爽人人av| 免费日韩视频在线观看| 免费人成在线观看视频播放| 熟女性饥渴一区二区三区| 欧美一级特黄aaa| 老太脱裤子让老头玩xxxxx| 成人日韩在线视频| 人妻熟妇乱又伦精品视频| 久久人人爽人人片| 日本999视频| www.中文字幕在线| 成人在线免费高清视频| 成 人 黄 色 小说网站 s色| 欧美日韩在线一| av无码久久久久久不卡网站| 欧美xxxxxbbbbb| 午夜欧美福利视频| 免费在线观看毛片网站| 日韩精品xxxx| 免费一级特黄毛片| www.日本在线视频| 日本福利视频一区| 日韩极品视频在线观看| 亚洲色图欧美自拍| 午夜免费一级片| 国产精品igao网网址不卡| 亚洲无吗一区二区三区| 国产成人精品无码播放| 国产一级特黄a大片免费| 最近免费中文字幕中文高清百度| 日韩在线观看a| 欧洲精品在线播放| av在线观看地址| 日韩中文字幕在线免费| 欧美色图色综合| 久久精品视频16| 国产黄色特级片| 天天操天天爽天天射| 怡红院亚洲色图| 久久久久久综合网| 欧美大片免费播放| 国产一区二区三区在线免费| 欧美国产日韩激情| 精品久久久久av| 天堂av2020| 成人免费看片视频在线观看| 成人在线免费高清视频| 日韩精品视频久久| 蜜桃福利午夜精品一区| av影院在线播放| 激情视频综合网| 手机免费看av网站| 日韩精品一区二区三区四| 无码中文字幕色专区| 日韩一区二区三区不卡视频| 手机成人av在线| 黄色一级视频在线播放| 三上悠亚av一区二区三区| 麻豆md0077饥渴少妇| 黄色动漫在线免费看| 欧美丝袜在线观看| 黄色网页免费在线观看| 亚洲精品永久视频| 午夜免费福利小电影| 午夜久久福利视频| 黄www在线观看| 国产在线拍揄自揄拍无码| 免费午夜视频在线观看| 欧美极品少妇无套实战| 91看片破解版| 日本免费不卡一区二区| 五月天丁香花婷婷| 日本三级免费观看| 国产91在线亚洲| 中文字幕在线视频一区二区| 日本一极黄色片| 无码人妻精品一区二区蜜桃网站| 黑鬼大战白妞高潮喷白浆| 日韩av中文字幕第一页| 中文字幕国产高清| 国产一区亚洲二区三区| 成人免费a级片| www激情五月| 国产美女18xxxx免费视频| 精品www久久久久奶水| 成人中文字幕在线播放| 黄色激情在线视频| 黄色录像特级片| 天天干天天av| 成人亚洲精品777777大片| 白嫩少妇丰满一区二区| 国产91xxx| 成人毛片一区二区| 一女被多男玩喷潮视频| 少妇高潮喷水在线观看| 男人添女人下面高潮视频| 久久99久久99精品| 国产一区二区在线视频播放| 国产色一区二区三区| 免费看黄在线看| 欧美成人三级在线视频| 国模无码视频一区二区三区| 日本免费不卡一区二区| 日韩免费毛片视频| 日韩欧美xxxx| 中文字幕22页| av不卡在线免费观看| gogogo免费高清日本写真| 二级片在线观看| 国产黄色片免费在线观看| 九一国产精品视频| 久久久999视频| 蜜臀av午夜一区二区三区| 久久婷五月综合| 婷婷视频在线播放| 日韩在线观看a| 激情婷婷综合网| 日韩av一卡二卡三卡| 97精品国产97久久久久久粉红 | 久草精品在线播放| 一本岛在线视频| 久久久国产精华液999999| 亚洲高清视频免费| 日韩精品视频在线观看视频| 毛片av免费在线观看| 天天操夜夜操很很操| 毛片在线播放视频| 亚洲免费成人在线视频| 中文字幕人妻熟女人妻洋洋| 国产精品免费观看久久| 午夜免费福利网站| 成人一对一视频| 善良的小姨在线| wwwxxx黄色片| 久久久久福利视频| 黄色国产精品视频| 7777在线视频| www.超碰com| av女优在线播放| 午夜影院免费版| 天天干天天综合| 国产自产在线视频| 国产91av视频在线观看| 日韩中文字幕二区| a天堂资源在线观看| 污污的网站免费| 久久综合久久色| 800av在线免费观看| 在线播放黄色av| 久久国产精品国产精品| 又大又硬又爽免费视频| 天天综合中文字幕| 91插插插影院| 欧美三级理论片| 成熟老妇女视频| 北条麻妃在线视频观看| wwwwww欧美| 国产经典久久久| 青青草原国产免费| 91看片破解版| 污色网站在线观看| 中文字幕第80页| 日日碰狠狠丁香久燥| 免费观看日韩毛片| 亚洲国产精品无码观看久久| www婷婷av久久久影片| 日韩精品在线播放视频| 在线播放av中文字幕| 在线观看免费视频高清游戏推荐| av网址在线观看免费| 成人观看免费完整观看| av网站在线观看不卡| 免费成人午夜视频| 激情综合网婷婷| 北条麻妃av高潮尖叫在线观看| 无码aⅴ精品一区二区三区浪潮| 无码人妻精品一区二区蜜桃网站| 狠狠精品干练久久久无码中文字幕 | 2025韩国大尺度电影| 最新黄色av网站| 欧美视频在线第一页| 欧美在线一区视频| 精品视频一区二区在线| 簧片在线免费看| 国产成人美女视频| 亚洲av首页在线| 人妻夜夜添夜夜无码av| 国产又黄又大又粗视频| 成人午夜激情av| 日韩高清在线一区二区| 91免费国产精品| 日韩欧美在线播放视频| 日本www.色| 可以免费看的黄色网址| 妞干网在线视频观看| 日本精品久久久久中文字幕| 免费黄频在线观看| 精品视频在线观看一区| 亚洲一级片网站| avav在线播放|