日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA自学笔记22

發布時間:2024/8/26 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA自学笔记22 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA自學筆記22

1、操作基本數據類型的流
DataInputStream
DataOutputStream
數據輸出流允許應用程序以適當方式將基本的Java數據類型寫入輸出流中。然后,應用程序可以使用數據輸入流將數據讀入。

//實例 private static void write(){ DataOutputStream dos-new DataOutputStream(new FileOutputStream("dos.txt"));dos.writeByte(10); dos.writeShort(100);dos.cllose(); } private static void read(){ DataInputStream dis=new DataOutputStream(new FileInputStream("dos.txt") ); byte b=dis.readByte(); short s=dis.readShort();dis.cose(); System.out.println(b); System.out.println(s); }

2、內存操作流
-操作字節數組
ByteArrayInputStream
包含一個內部緩沖區,該緩沖區包含從流中讀取的字節。
ByteArrayOutputStream
此類實現一個輸出流,其中的數據被寫入一個byte數組,緩沖區會隨著數據的不斷寫入而自動增長。無法關閉該流。

ByteArrayOutputStream baos=new ByteArrayOutputStream(); for(int x=0;x<10;x++){ baos.write(("hello"+x).getBytes()); } byte[] bys=baos.toByteArray();ByteArrayInputStream bais=new ByteArrayInputStream(bys); int by=0; while((by=bais.read())!=-1){ System.out.println((char)by); }baos.close();

-操作字符數組
CharArrayReader
CharArrayWrite
-操作字符串
StringReader
StringWriter

3、打印流
1)分類:
字節打印流
字符打印流
2)特點:
只能操作目的地,不能操作數據
可以操作任意類型的數據
如果啟動了自動刷新,就能夠自動刷新
可以操作文件的流
只能寫,不能讀
注:能直接操作文本文件的有:
FileInputStream
FileOuputStream
FileReader
FileWriter
PrintStream
PrintWriter
流分為基本流和高級流。基本流是能直接讀寫文件的,高級流是在基本流的基礎上提供了一些其他的功能。查看API,看流對象的構造方法,如果同時有File類型和String類型的參數,一般來說都是可以直接操作文件的。

作為Writer的子類使用PrintWriter pw-new PrintWriter("pw.txt"); pw.write("good"); pw.write("wood");pw.close(); //實現自動刷新和換行 PrintWriter pw=new PrintWriter(new FileWriter("pw2.txt"),true); //啟動自動刷新,但對print()無效 pw.println(true); pw.println(100); //這里的println等價于 bw.write() bw.newLine() bw.flush() 打印流改進復制文本文件 //封裝數據源 BufferedReader br=new BufferedReader(new FileReader("DataStreamDemo.java")); //封裝目的地 PrintWriter pw=new PrintWriter(new FileWriter("copy.java",true)); String line=null; while((line=br,readLine())!=null){ pw.println(line); } pw.close(); br.close();

3)標準輸入輸出流
System類中的字段:in,out
public static final InputStream in “標準”輸入流
public static final PrintStream out
“標準”輸出流
它們各代表了系統標準的輸入和輸出設備。默認輸入設備是鍵盤,輸出設備是顯示器。System.in的類型是InputStream.System.out的類型是PrintStream

//輸出語句的本質 System.out.println("Hello"); //等價于 PrintStream ps=System.out; ps.println("helloworld");

//三種方式實現鍵盤錄入

//獲取標準輸入流 InputStream is=System.in; //一次獲取一行數據 InputStreamReader isr=new InputStreamReader(is); BufferedReader br=new BufferedReader(isr); //或 //BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String line=br.readLine(); System.out.printlb("please input words"); String line=br.readLine(); System.out.println(line); //輸出語句用字符串緩沖流改進 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out); bw.write("hello"); bw.flush(); bw.close();

6、
1)序列化流
ObjectOutputStream
將Java對象的基本數據類型和圖形寫入OutputStream.把對象按照流一樣的方式存入文本文件或者在網絡中傳輸
2)反序列化流
ObjectInputStream
把文本文件中的流對象或者網路中的流對象數據還原成對象

//Person類略(Implements Serializable)//序列化數據的方法,必須通過實現序列化接口以啟動序列化功能。該接口沒有任何方法,類似于這種沒有方法的接口被稱為標記接口,在類名后聲明即可。這時將一個標記值存入該類中,一旦該類成員發生變化,該標記值也會發生變化。因此直接讀取將發生id不匹配的錯誤,要重新寫過才行。或者將該id值固定,點擊黃色警告線即可Add default serial version id/add genreated serial version id。之后再直接進行讀取無問題。 private ststic void write(){ ObjectOutputStream cos=new ObjectOutputStream(new FileOutputStream("cos.txt"));Person p=new Person("cc");oos.writeObject(p);oos.close(); } //反序列化方法 private static void read() { //創建反序列化對象 ObjectInputStream ois=new ObjextInputStream(new FileInputStream("oos.txt"));//還原對象 Object obj=ois.readObject();ois.close(); }

3)如何讓對象不被序列化?
同一個類中有很多成員,有些不想被序列化。這時可以使用transient關鍵字聲明不需要序列化的成員變量。可以與IO流結合來使用。Hashtable的子類,說明是一個Map集合

7、Properties集合
1)表示一個持久的屬性集。Prooerties可保存在流中或從流中加載,屬性列表中每個鍵及其對應值都是一個字符串。
2)構造方法
無參:沒有泛型
Properties prop=new Properties();
prop.put(key,value);

//添加元素: prop.put("001","cc"); prop.put("002","dc"); prop.put("003","ac"); //遍歷集合 Set<Object>set=.prop.keySet(); for(Object key:set){ Object value=prop.get(key); }

3)特殊功能
public Object Property(String key,String value)
添加元素
public Object getProperty(String key)
獲取元素
public Set stringPropertyNames()
獲取所有的鍵的集合

Properties prop=new Propertiess();prop.setProperty("ww","12"); prop.setProperty("we","12"); prop.setProperty("wq","13");Set<String>set=prop.stringPropertyNames() for(String key:set){ String value=prop.getProperty(key) };//獲取所有鍵的集合

必須是Properties集合,文件的形式必須是鍵值對的形式
public void load(Reader reader)
把文件的數據讀取到集合中
public void store(Writer writer,String commments)
把集合中的數據存儲到文件

Properties prop=new Properties();//將文件中的數據讀入到集合中 Reader r=new FileReader("prop.txt"); prop.load(r); r.close(); System.out.println("prop:"+prop);//寫數據 Properties prop=new Properties(); prop.setProperty("ww","3"); prop.setProperty("w3","5"); prop.setProperty("w2","6");Writer w=new FileWriter("name.txt"); prop.store(w,"men");

@例題1:判斷文件中是否有指定的鍵,如果有就把其值改為100
-把文件中的數據加載到集合中
-遍歷集合,獲得每一個鍵
-判斷是否有Lisi,如果有就修改值為100
-把集合中的數據重新存儲到文件中

//把文件中的數據加載到集合中 Properties prop=new Properties(); Reader r=new FileReader("user.txt"); prop.load(r); r.close();//遍歷集合,得到每一個值 Set<String>set=prop.stringPropertyNames(); for(String key:set){ if("lisi".equals(key)){ if("lisi".equals(key)){ prop.setProperty(key,"100"); break; } } //將集合中的數據重新存儲到文件中 Writer w=new FileWriter("user.txt"); prop.store(w,null); w.close(); } //只能玩5次的猜數字游戲 //猜數字方法GuessNumber.start(); //把數據加載到集合中 Properties prop=new Properties(); Reader=new FileReader("count.txt"); prop.load(r); r.close();String value=prop.getProperty("count"); int number=Integer.parseInt(value); if(number>5) { System.out.println("請付費"); System.exit(0); } else{ number++; prop.setProperty("count",String.valurOf(number)); Wwrite w=new FileWriter("count.txt"); prop.store(w,null); w.close(); GuessNumber.start(); }

4、NIO包下的IO流
1)NIO即新IO的意思

Path:路徑
Paths:有一個靜態方法返回一個路徑
public static Path get(URI uri)
Files:提供了靜態方法供使用
public static long copy(Path source,OutputStream out)

Files.copy(Paths.get("ByteArrayStreamDemo.java"),new FileOutputStream("Copy.java"));//實現復制文件

轉載于:https://www.cnblogs.com/Tanqurey/p/10485331.html

總結

以上是生活随笔為你收集整理的JAVA自学笔记22的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产理论视频在线观看 | av中文字幕免费观看 | 日本久久中文字幕 | 国产精品区二区三区日本 | 成年精品| 欧美又大粗又爽又黄大片视频 | 亚洲天堂av电影 | 欧美一区综合 | 中文字幕高清在线播放 | 欧美aa视频 | 日韩色图一区 | 免费国产a级片 | 亚洲精品亚洲人成人网 | 中文字幕高清一区 | 91久久精品一区二区三区 | 国产精品.com | 热热色国产| 五月色综合 | 亚洲av成人精品一区二区三区 | 国产一级片免费 | 亚洲区av | gav在线| 波多野结衣一区二区三区四区 | 放几个免费的毛片出来看 | 日日夜夜爱爱 | 精品人妻一区二区三区四区五区 | 色草在线| 在线观看免费成人 | 色一区二区三区四区 | 秘密爱大尺度做爰呻吟 | 欧美偷拍一区二区三区 | 九九在线观看高清免费 | 国产精欧美一区二区三区白种人 | 亚洲黄色大全 | 捆绑凌虐一区二区三区 | 波多野吉衣在线视频 | 亚洲乱码av| 天堂俺去俺来也www久久婷婷 | 成年人观看视频 | 777四色| 91在线网址 | 微拍福利一区二区 | 亚洲自拍偷拍网站 | 亚洲一区二区三区四区电影 | 91av俱乐部 | 九九天堂 | 免费无遮挡无码永久视频 | 欧美三根一起进三p | www.xxx日韩| 天天操夜夜操夜夜操 | 91在线日韩 | 德国艳星videos极品hd | 午夜影院免费看 | 人人狠狠综合久久亚洲 | 污污网站在线播放 | 国产美女喷水视频 | 日本偷偷操 | 69看片| 国产精品成人国产乱一区 | 日韩av不卡在线播放 | 在线观看视频二区 | 国产精品嫩草69影院 | 中文字幕2021 | 成人福利视频导航 | 国产精品久久成人 | 娇妻被肉到高潮流白浆 | 欧美日韩一区二区三区国产精品成人 | 97se在线视频| 在线观看精品 | 一区二区三区国 | www日本视频 | 国产精品无 | 日本xxxx色| 女主播在线观看 | 日本黄色免费看 | 色综合婷婷 | 青青青青青操 | 国产高清一二三区 | www.夜夜操| 国产videos | 成人欧美一区二区三区小说 | 嫩草视频在线播放 | 欧美三级色图 | 波多野结衣免费观看视频 | 成人av网站在线 | 亚洲人性生活视频 | 国产亚洲欧美精品久久久www | 影音先锋成人网 | 天天射日日射 | av在线亚洲天堂 | 日韩小视频在线观看 | 女儿朋友 | 午夜有码| 欧美日韩一卡 | 日日夜夜精品免费 | 日韩精品成人av | 国产精品久久91 | 久久久久久久蜜桃 | 欧美成人手机在线视频 |