Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言艳狐。Java 技術(shù)具有卓越的通用性定硝、高效性、平臺(tái)移植性和安全性毫目,廣泛應(yīng)用于PC蔬啡、數(shù)據(jù)中心、游戲控制臺(tái)镀虐、科學(xué)超級(jí)計(jì)算機(jī)箱蟆、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群刮便。
給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫(kù)-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
1:登錄注冊(cè)IO版本案例
比較JAVA筆記(十六) 改動(dòng)之處:
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零顽腾,五五四,六零七 】,無(wú)論你是大牛還是小白抄肖,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)久信!裙內(nèi)有開(kāi)發(fā)工具,很多干貨和技術(shù)資料分享漓摩!
創(chuàng)建一個(gè)保存用戶(hù)信息的文件
驗(yàn)證登陸
保存注冊(cè)信息
2:數(shù)據(jù)操作流(操作基本類(lèi)型數(shù)據(jù)的流)(理解)
(1)可以操作基本類(lèi)型的數(shù)據(jù)
(2)流對(duì)象名稱(chēng)
DataInputStream
DataOutputStream
3:內(nèi)存操作流(理解)
(1)有些時(shí)候我們操作完畢后裙士,未必需要產(chǎn)生一個(gè)文件,就可以使用內(nèi)存操作流管毙。
(2)三種
A:ByteArrayInputStream,ByteArrayOutputStream
B:CharArrayReader,CharArrayWriter
C:StringReader,StringWriter
4:打印流(掌握)
(1)字節(jié)打印流腿椎,字符打印流
(2)特點(diǎn):
A:只操作目的地,不操作數(shù)據(jù)源
B:可以操作任意類(lèi)型的數(shù)據(jù)
C:如果啟用了自動(dòng)刷新,在調(diào)用println()方法的時(shí)候夭咬,能夠換行并刷新
D:可以直接操作文件
問(wèn)題:哪些流可以直接操作文件呢?
看API啃炸,如果其構(gòu)造方法能夠同時(shí)接收File和String類(lèi)型的參數(shù),一般都是可以直接操作文件的
(3)復(fù)制文本文件
復(fù)制文件的一種方式
5:標(biāo)準(zhǔn)輸入輸出流(理解)
(1)System類(lèi)下面有這樣的兩個(gè)字段
in 標(biāo)準(zhǔn)輸入流
out 標(biāo)準(zhǔn)輸出流
(2)三種鍵盤(pán)錄入方式
A:main方法的args接收參數(shù)
B:System.in通過(guò)BufferedReader進(jìn)行包裝
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
C:Scanner?Scanner sc = new Scanner(System.in);
(3)輸出語(yǔ)句的原理和如何使用字符流輸出數(shù)據(jù)
A:原理
System.out.println("helloworld");
PrintStream ps = System.out;
ps.println("helloworld");
B:把System.out用字符緩沖流包裝一下使用
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
6:隨機(jī)訪問(wèn)流(理解)
(1)可以按照文件指針的位置寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)卓舵。
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零南用,五五四,六零七 】掏湾,無(wú)論你是大牛還是小白裹虫,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開(kāi)發(fā)工具融击,很多干貨和技術(shù)資料分享筑公!
(2)案例:
A:寫(xiě)數(shù)據(jù)?B:讀數(shù)據(jù)?C:獲取和改變文件指針的位置
7:合并流(理解)
(1)把多個(gè)輸入流的數(shù)據(jù)寫(xiě)到一個(gè)輸出流中。
(2)構(gòu)造方法:
A:SequenceInputStream(InputStream s1, InputStream s2)
B:SequenceInputStream(Enumeration e)
8:序列化流(理解)
(1)可以把對(duì)象寫(xiě)入文本文件或者在網(wǎng)絡(luò)中傳輸
(2)如何實(shí)現(xiàn)序列化呢?
讓被序列化的對(duì)象所屬類(lèi)實(shí)現(xiàn)序列化接口尊浪。
該接口是一個(gè)標(biāo)記接口匣屡。沒(méi)有功能需要實(shí)現(xiàn)。
(3)注意問(wèn)題:
把數(shù)據(jù)寫(xiě)到文件后拇涤,在去修改類(lèi)會(huì)產(chǎn)生一個(gè)問(wèn)題耸采。
如何解決該問(wèn)題呢?
在類(lèi)文件中,給出一個(gè)固定的序列化id值工育。
而且虾宇,這樣也可以解決黃色警告線問(wèn)題
(4)面試題:
什么時(shí)候序列化?
如何實(shí)現(xiàn)序列化?
什么是反序列化?
9:Properties(理解)
(1)是一個(gè)集合類(lèi),Hashtable的子類(lèi)
(2)特有功能
A:public Object setProperty(String key,String value)
B:public String getProperty(String key)
C:public Set stringPropertyNames()
(3)和IO流結(jié)合的方法
與IO流結(jié)合方法
(4)案例:
A:根據(jù)給定的文件判斷是否有鍵為"lisi"的如绸,如果有就修改其值為100
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零嘱朽,五五四,六零七 】怔接,無(wú)論你是大牛還是小白搪泳,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開(kāi)發(fā)工具扼脐,很多干貨和技術(shù)資料分享岸军!
案例A
B:寫(xiě)一個(gè)程序?qū)崿F(xiàn)控制猜數(shù)字小游戲程序不能玩超過(guò)5次
定義一個(gè)常量count奋刽,判斷數(shù)字時(shí)加一
10:NIO(了解)
(1)JDK4出現(xiàn)的NIO,對(duì)以前的IO操作進(jìn)行了優(yōu)化艰赞,提供了效率佣谐。但是大部分我們看到的還是以前的IO
(2)JDK7的NIO的使用