第一篇:Javadoc轉(zhuǎn)換chm幫助文檔的四種方法總結(jié)
Javadoc轉(zhuǎn)換chm幫助文檔的四種方法總結(jié)
目錄
V1.0
關(guān)鍵詞..........................................................................................................1
前言.............................................................................................................1
預(yù)處理..........................................................................................................1
第一種:使用jd2chm來生成chm幫助文檔............................................................4
使用原版jd2chm_exe_03轉(zhuǎn)換成chm..................................................................4
生成英文版本如下.............................................................................................4
生成中文版本如下.............................................................................................5
使用網(wǎng)上高手改進(jìn)的版本jd2chm_0.34轉(zhuǎn)換成chm..................................................7
生成英文版本如下.............................................................................................7
生成中文版本如下.............................................................................................8
第二種:使用javadoc2chm來生成chm幫助文檔...................................................11
生成英文版本如下............................................................................................11
生成中文版本如下............................................................................................12
第三種:使用javadoc2help來生成chm幫助文檔...................................................18
生成英文版本如下............................................................................................18
生成中文版本如下............................................................................................18 第四種:使用google code里面的javadoc2chm項(xiàng)目構(gòu)建........................................20
生成英文版本如下............................................................................................20
生成中文版本如下............................................................................................22
總結(jié)............................................................................................................23
李順利
[2010年1月6日] 關(guān)鍵詞
Javadoc chm 轉(zhuǎn)換 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文亂碼 李順利
前言
朋友,當(dāng)您在一個(gè)項(xiàng)目完成后,是不是需要把你的源碼打包并且把注釋打成Javadoc交給客戶,Eclipse或者M(jìn)yEclipse自動(dòng)打成的Javadoc文檔都是基于網(wǎng)頁(yè)格式的,打開是很方便,不過真的用的時(shí)候,搜索每個(gè)方法或者什么的就很麻煩了,而chm幫助文檔格式不但文件小,查閱都很方便,所以網(wǎng)上就出現(xiàn)了很多把Javadoc轉(zhuǎn)換為chm格式的幫助文檔的軟件/工具或者方法。自己最近需要真的需要這個(gè)方面的需求,查閱了網(wǎng)上很多方法,發(fā)現(xiàn)很多都是寫的很不詳細(xì),對(duì)于我這種剛接觸的很是不清楚,經(jīng)過我的學(xué)習(xí)和理解,現(xiàn)提供從網(wǎng)上總結(jié)的Javadoc轉(zhuǎn)換chm幫助文檔的四種方法,詳細(xì)提供各個(gè)轉(zhuǎn)換的步驟供大家學(xué)習(xí),并且提供英文版本和中文版本Javadoc轉(zhuǎn)換過程中出現(xiàn)的問題,特別是中文的時(shí)候出現(xiàn)的亂碼現(xiàn)象,也提供一些解決方案。
預(yù)處理
轉(zhuǎn)換之前需要了解的是chm是微軟公司發(fā)布的一種幫助文檔格式,所有,要使用下面的方法轉(zhuǎn)換,請(qǐng)先安裝HTML Help Workshop(后面簡(jiǎn)稱為HHW)(實(shí)際上后面的一些處理有些都是在上面操作的)
http://msdn.microsoft.com/en-us/library/ms669985.aspx,下載完畢后就是安裝了,很簡(jiǎn)單。
還有一個(gè)很重要的問題,就是如何把項(xiàng)目打成Javadoc,這有人應(yīng)該會(huì)說,很簡(jiǎn)單啊,就是使用Eclipse或者M(jìn)yeclipse的Export功能,是的,這是可以,但是有些小的方面還是需要我們強(qiáng)烈注意的 第一個(gè)問題就是Java代碼的格式問題
Java代碼編寫的使用有的使用GBK,有的使用UTF-8,這個(gè)時(shí)候就會(huì)有區(qū)別。使用GBK編碼的時(shí)候生成Javadoc文檔時(shí)沒有太大問題的,但是,要是整個(gè)項(xiàng)目的默認(rèn)編碼格式是UTF-8的話,就會(huì)報(bào)警告:編碼 GBK 的不可映射字符
根本沒有成功生成Javadoc文檔,如何解決?解決方案就是在生成Javadoc的時(shí)候?qū)M options進(jìn)行編碼設(shè)置-encoding UTF-8-charset UTF-8,設(shè)置如下:
第二個(gè)問題就是如何把生成的Javadoc文檔生成英語(yǔ)版本 這個(gè)問題有的時(shí)候?yàn)榱私鉀Q中文亂碼是很重要的,我們生成英文版本的Javadoc(僅對(duì)生成的Javadoc框架的語(yǔ)言做限制,并沒有對(duì)注釋內(nèi)容的格式做限制,也就是說這個(gè)時(shí)候注釋還是可以是中文的)。解決方案也是在VM options中加入-locale en_US,但是此時(shí)注意的是,如果把-locale en_US設(shè)置在后面的話,會(huì)報(bào)一個(gè)錯(cuò)誤,大致是-locale en_US 在javadoc命令必須是在最前面,所有,正確的寫法就是-locale en_US-encoding UTF-8-charset UTF-8(整合上面),默認(rèn)如果不寫-locale的話,安裝locale語(yǔ)言來進(jìn)行設(shè)置,當(dāng)然我們中國(guó)人就是中文的了。(當(dāng)然如果你工程默認(rèn)編碼是GBK而且您想生成中文的幫助文檔的話,這寫都可以不要,使用默認(rèn)即可)
設(shè)置截圖如下:
做好了上面的工作,現(xiàn)在就請(qǐng)大家看我是如何轉(zhuǎn)換成chm幫助文檔的。
(做完這些,請(qǐng)生成中文和英文各一份Javadoc文檔,供后面測(cè)試使用)
第一種:使用jd2chm來生成chm幫助文檔
使用原版jd2chm_exe_03轉(zhuǎn)換成chm
原版jd2chm_exe_03需要通過官網(wǎng)下載http:// Help Workshophhc.exe“ api_en_US.hhp回車(注意C:Program FilesHTML Help Workshophhc.exe是HHW默認(rèn)安裝路徑,如果不是請(qǐng)自行修改)
生成的chm文件在解壓的包的文件夾里:
打開后是上面的這樣子,具體的原因不清楚,不過解決的方法就是把Javadoc文件夾和ruby命令的文件夾不要放在同一個(gè)盤內(nèi),不在同一個(gè)盤里就會(huì)使用絕對(duì)路徑。重修生成,但是這種方法也并不適合,當(dāng)我們把原Javadoc文檔的文件夾刪除或者移動(dòng)了,這個(gè)時(shí)候也會(huì)出現(xiàn)上面的情況。具體的我打開了hhp文件查看了一下,應(yīng)該是這種方法使用的是覺得路徑,而并沒有把文件進(jìn)行包裝在生成。(要查看下面截圖的效果,請(qǐng)把docs文件夾保留)
命令
ruby createhhp.rb api_en_US e:docsapi_en_US ”C:Program FilesHTML Help Workshophhc.exe“ api_en_US.hhp
生成中文版本如下
Cmd命令進(jìn)入javadoc2chm目錄,寫下面的命令
ruby createhhp.rb 中文幫助文檔 e:docsapi_zh_CN回車
”C:Program FilesHTML Help Workshophhc.exe" 中文幫助文檔.hhp回車
(注意C:Program FilesHTML Help Workshophhc.exe是HHW默認(rèn)安裝路徑,如果不是請(qǐng)自行修改)
不能設(shè)置Title和中文的Title時(shí)候亂碼,操作麻煩,還要安裝ruby輔助軟件。
第二篇:總結(jié)的Javadoc轉(zhuǎn)換chm幫助文檔的四種方法
http://lishunli.iteye.com/blog/1051688 李順利
[2010年1月6日]
關(guān)鍵詞
Javadoc chm 轉(zhuǎn)換 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文亂碼 李順利
前言
朋友,當(dāng)您在一個(gè)項(xiàng)目完成后,是不是需要把你的源碼打包并且把注釋打成Javadoc交給客戶,Eclipse或者M(jìn)yEclipse自動(dòng)打成的Javadoc文檔都是基于網(wǎng)頁(yè)格式的,打開是很方便,不過真的用的時(shí)候,搜索每個(gè)方法或者什么的就很麻煩了,而chm幫助文檔格式不但文件小,查閱都很方便,所以網(wǎng)上就出現(xiàn)了很多把Javadoc轉(zhuǎn)換為chm格式的幫助文檔的軟件/工具或者方法。
自己最近需要真的需要這個(gè)方面的需求,查閱了網(wǎng)上很多方法,發(fā)現(xiàn)很多都是寫的很不詳細(xì),對(duì)于我這種剛接觸的很是不清楚,經(jīng)過我的學(xué)習(xí)和理解,現(xiàn)提供從網(wǎng)上總結(jié)的Javadoc轉(zhuǎn)換chm幫助文檔的四種方法,詳細(xì)提供各個(gè)轉(zhuǎn)換的步驟供大家學(xué)習(xí),并且提供英文版本和中文版本Javadoc轉(zhuǎn)換過程中出現(xiàn)的問題,特別是中文的時(shí)候出現(xiàn)的亂碼現(xiàn)象,也提供一些解決方案。
預(yù)處理
轉(zhuǎn)換之前需要了解的是chm是微軟公司發(fā)布的一種幫助文檔格式,所有,要使用下面的方法轉(zhuǎn)換,請(qǐng)先安裝HTML Help Workshop(后面簡(jiǎn)稱為HHW)(實(shí)際上后面的一些處理有些都是在上面操作的)
http://msdn.microsoft.com/en-us/library/ms669985.aspx,下載完畢后就是安裝了,很簡(jiǎn)單。
還有一個(gè)很重要的問題,就是如何把項(xiàng)目打成Javadoc,這有人應(yīng)該會(huì)說,很簡(jiǎn)單啊,就是使用Eclipse或者M(jìn)yeclipse的Export功能,是的,這是可以,但是有些小的方面還是需要我們強(qiáng)烈注意的 第一個(gè)問題就是Java代碼的格式問題
Java代碼編寫的使用有的使用GBK,有的使用UTF-8,這個(gè)時(shí)候就會(huì)有區(qū)別。使用GBK編碼的時(shí)候生成Javadoc文檔時(shí)沒有太大問題的,但是,要是整個(gè)項(xiàng)目的默認(rèn)編碼格式是UTF-8的話,就會(huì)報(bào)警告:編碼 GBK 的不可映射字符
根本沒有成功生成Javadoc文檔,如何解決?解決方案就是在生成Javadoc的時(shí)候?qū)M options進(jìn)行編碼設(shè)置-encoding UTF-8-charset UTF-8,設(shè)置如下:
第二個(gè)問題就是如何把生成的Javadoc文檔生成英語(yǔ)版本
這個(gè)問題有的時(shí)候?yàn)榱私鉀Q中文亂碼是很重要的,我們生成英文版本的Javadoc(僅對(duì)生成的Javadoc框架的語(yǔ)言做限制,并沒有對(duì)注釋內(nèi)容的格式做限制,也就是說這個(gè)時(shí)候注釋還是可以是中文的)。
解決方案也是在VM options中加入-locale en_US,但是此時(shí)注意的是,如果把-locale en_US設(shè)置在后面的話,會(huì)報(bào)一個(gè)錯(cuò)誤,大致是-locale en_US 在javadoc命令必須是在最前面,所有,正確的寫法就是-locale en_US-encoding UTF-8-charset UTF-8(整合上面),默認(rèn)如果不寫-locale的話,安裝locale語(yǔ)言來進(jìn)行設(shè)置,當(dāng)然我們中國(guó)人就是中文的了。(當(dāng)然如果你工程默認(rèn)編碼是GBK而且您想生成中文的幫助文檔的話,這寫都可以不要,使用默認(rèn)即可)設(shè)置截圖如下:
做好了上面的工作,現(xiàn)在就請(qǐng)大家看我是如何轉(zhuǎn)換成chm幫助文檔的。(做完這些,請(qǐng)生成中文和英文各一份Javadoc文檔,供后面測(cè)試使用)
第一種:使用jd2chm來生成chm幫助文檔 使用原版jd2chm_exe_03轉(zhuǎn)換成chm 原版jd2chm_exe_03需要通過官網(wǎng)下載http:// Help Workshophhc.exe“ api_en_US.hhp回車(注意C:Program FilesHTML Help Workshophhc.exe是HHW默認(rèn)安裝路徑,如果不是請(qǐng)自行修改)
生成的chm文件在解壓的包的文件夾里:
打開后是上面的這樣子,具體的原因不清楚,不過解決的方法就是把Javadoc文件夾和ruby命令的文件夾不要放在同一個(gè)盤內(nèi),不在同一個(gè)盤里就會(huì)使用絕對(duì)路徑。重修生成,但是這種方法也并不適合,當(dāng)我們把原Javadoc文檔的文件夾刪除或者移動(dòng)了,這個(gè)時(shí)候也會(huì)出現(xiàn)上面的情況。具體的我打開了hhp文件查看了一下,應(yīng)該是這種方法使用的是覺得路徑,而并沒有把文件進(jìn)行包裝在生成。(要查看下面截圖的效果,請(qǐng)把docs文件夾保留)
命令
ruby createhhp.rb api_en_US e:docsapi_en_US ”C:Program FilesHTML Help Workshophhc.exe“ api_en_US.hhp
生成中文版本如下
Cmd命令進(jìn)入javadoc2chm目錄,寫下面的命令
ruby createhhp.rb 中文幫助文檔 e:docsapi_zh_CN回車
”C:Program FilesHTML Help Workshophhc.exe" 中文幫助文檔.hhp回車(注意C:Program FilesHTML Help Workshophhc.exe是HHW默認(rèn)安裝路徑,如果不是請(qǐng)自行修改)
不能設(shè)置Title和中文的Title時(shí)候亂碼,操作麻煩,還要安裝ruby輔助軟件。
總結(jié)
上面的一些不完美的地方,都可以使用HTML Help Workshop進(jìn)行改善。實(shí)際上也是因?yàn)榇舜螜C(jī)遇,讓我學(xué)習(xí)了HTML Help Workshop的操作,以后制作chm文檔就很方便了。
上面方法通過參考網(wǎng)上的操作總結(jié)自己親自實(shí)際而成,需要探討的請(qǐng)聯(lián)系QQ:506817493。
順利提高所有工具和制作成果的文件下載(不包括ruby輔助軟件,自行下載)Javadoc轉(zhuǎn)換chm幫助文檔的四種方法總結(jié).rar
第三篇:JAVA四種基本排序的總結(jié)
JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進(jìn),SHELL排序法是 插入法的改進(jìn).所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法
一 插入法:遍歷排序集合,每到一個(gè)元素時(shí),都要將這個(gè)元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個(gè)移動(dòng)到當(dāng)前范圍內(nèi)它最應(yīng)該出現(xiàn)的位置。交換是相鄰遍歷移動(dòng),雙重循環(huán)控制實(shí)現(xiàn).這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規(guī)整,過來一個(gè),規(guī)整一個(gè).處理代碼如下: public void sort(int[] data){ int temp;
for(int i=1;i〈data.length;i++){ for(int j=i;(j〉0)&&(data[j]〉data[j-1]);j--){
temp=date[j];data[j]=data[j-1];data[j-1]=temp;} } } 二冒泡法:比較容易,它的內(nèi)層循環(huán)保證遍歷一次后,集合中最小(大)元素出現(xiàn)在它的正確位置,下一次就是次小元素。。該方法在集合分布的各種情況下交換移動(dòng)的次數(shù)基本不變,屬于最慢的一種排序。實(shí)現(xiàn)也是雙重循環(huán)控制。這種排序法屬于過江龍,就是要找到極端,但是過獎(jiǎng)龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑.處理代碼如下: public static int [] maopao(int[] data){ int temp;
for(int i=0;i〈data.length-1;i++){ for(int j=i+1;j〈data.length;j++〉{ if(data[i]〈data[j]〉{ temp=data[i];data[i]=data[j];data[j]=temp;} 〉 〉
return data;
三選擇法:該方法只是通過遍歷集合記錄最?。ù螅┰氐奈恢?,一次遍歷完后,再進(jìn)行交換位置操作,類似冒泡,但在比較過程中,不進(jìn)行交換操作,只記錄元素位置。一次遍歷只進(jìn)行一次交換操作。這個(gè)對(duì)與交換次序比較費(fèi)時(shí)的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數(shù)據(jù),待遍歷數(shù)據(jù)完了之后,我再處理,不像冒泡法那樣只要比自己極端一點(diǎn)的就要處理,選擇法只處理本身范圍內(nèi)的最極端數(shù)據(jù).public static void xuanze(int[] data){ int temp;
for(int i = 0;i 〈 data.length;i++〉 { int lowIndex = i;
for(int j = data.length-1;j)i;j--){ if(data[j])data[lowIndex]){ lowIndex = j;} } temp=data[i];
data[i]=data[lowIndex];data[lowIndex]=temp;} } 四 Shell排序:
它是對(duì)插入排序的一種改進(jìn),是考慮將集合元素按照一定的基數(shù)劃分成組去排序,讓每一組在局部范圍內(nèi)先排成基本有序,最后在進(jìn)行一次所有元素的插入排序。public void sort(int[] data){ for(int i=data.length/2;i)2;i/=2){ for(int j=0;j〈i;j++〉{ insertSort(data,j,i);} 〉
insertSort(data,0,1);〉
private void insertSort(int[] data, int start, int inc){ int temp;
for(int i=start+inc;i〈data.length;i+=inc〉{ for(int j=i;(j)=inc)&&(data[j]〈data[j-inc]〉;j-=inc〉{ temp=data[j];data[j]=data[j-inc] data[j-inc]=temp;} 〉 〉
第四篇:句式轉(zhuǎn)換題方法總結(jié)
小學(xué)語(yǔ)文句式轉(zhuǎn)換題方法總結(jié)與練習(xí)| 含答案
01
反問句與陳述句
一、反問句變陳述句
1.先刪去反問詞(怎能、怎么、難道、哪里等等),有的句子可適當(dāng)再加上“很”“都”等,使句子表達(dá)的意思更準(zhǔn)確。
2.看句子里的有沒有否定詞“不”,有的給刪去,沒有的給加上。3.反問語(yǔ)氣詞刪去“?”變“?!?。練習(xí):(反問改陳述)
1.我們?cè)跄芡浝蠋煹拇敬窘虒?dǎo)? 我們不能忘記老師的淳淳教導(dǎo)。2.那浪花所奏的不正是一首歡樂的歌嗎? 那浪花所奏的正是一首歡樂的歌。
3.這里的景色這么美,怎能不使我們流連往返呢? 這里的景色這么美,使我們流連往返。4.這點(diǎn)小事,難道還要媽媽擔(dān)心嗎? 這點(diǎn)小事,不要媽媽擔(dān)心。
5.大千世界,哪里沒有野花的倩影呢?
大千世界,到處都有野花的倩影。6.你難道沒看比賽嗎? 你看了比賽。
7.你難道不去上體育課了嗎? 你去上體育課。
二、陳述句變反問句
1.先加上反問詞(怎能、怎么、難道、哪里等等),有的句子可適當(dāng)再加上“很”“都”等,使句子表達(dá)的意思更準(zhǔn)確。
2.看句子里的有沒有否定詞“不”,有的給刪去,沒有的給加上。3.反問語(yǔ)氣詞加上“?!弊儭埃俊?。練習(xí):
1.我們不能因?yàn)閷W(xué)習(xí)任務(wù)重而不參加體育活動(dòng)。(我們?cè)趺茨芤驗(yàn)閷W(xué)習(xí)任務(wù)重而不參加體育活動(dòng)呢?)2.這幅畫是我們班彩穎畫的。
(難道這幅畫不是我們班彩穎畫的嗎?)
3.父母含辛茹苦地把我們養(yǎng)大,我們不應(yīng)該傷他們的心。(父母含辛茹苦地把我們養(yǎng)大,我們?cè)趺茨軅麄兊男哪???.對(duì)少數(shù)同學(xué)不守紀(jì)律的現(xiàn)象,我們不能不聞不問。
(對(duì)少數(shù)同學(xué)不守紀(jì)律的現(xiàn)象,我們?cè)趺茨懿宦劜粏柲兀?難道我們能不聞不問嗎?>)
02
直接引語(yǔ)與間接引語(yǔ)
對(duì)話與轉(zhuǎn)述的互換練習(xí):(直接引語(yǔ)改間接引語(yǔ))1.外公對(duì)小英說:“我告訴你,這是中國(guó)最有名的花?!?外公對(duì)小英說,他告訴小英,這是中國(guó)最有名的花。)
2.張強(qiáng)笑著對(duì)媽媽說:“李明今天生病了,我去幫他輔導(dǎo)功課?!?張強(qiáng)笑著對(duì)媽媽說,李明今天生病了,他去幫李明輔導(dǎo)功課。)3.李老師興奮地說:“我們班戰(zhàn)勝了四(1)班,獲得了冠軍。”(李老師興奮地說,他們班戰(zhàn)勝了四(1)班,獲得了冠軍。)4.王老師對(duì)小華說:“我把你的書包縫好了?!?王老師對(duì)小華說,他把小華的書包縫好了。)5.爸爸說:“我明天要去昆明,你自己做飯吃?!?爸爸說,他明天要去昆明,讓我自己做飯吃。)6.爸爸說:“你明天別去玩了,我?guī)阌惺氯ァ?”爸爸說,讓我明天別去玩了,他帶我有事去。)
03
縮句
1.要知道寫的是什么。2.表示時(shí)間、地點(diǎn)、數(shù)量、方向、環(huán)境、修飾詞語(yǔ)(的、地、得前面的詞語(yǔ))都可以縮去。
3.縮句后變成:“名詞+動(dòng)詞+名詞”或“名詞+動(dòng)詞”。練習(xí):
1.山民的幾句樸素的話包蘊(yùn)著意味深長(zhǎng)的哲理。(話包蘊(yùn)著哲理。)
2.紅四團(tuán)取得了長(zhǎng)征中的又一次決定性的勝利。(紅四團(tuán)取得勝利)
3.汽輪發(fā)電機(jī)廠的工人師傅把一臺(tái)臺(tái)進(jìn)口鉆機(jī)熟練地安裝好了。(工人師傅把鉆安裝好。)
4.語(yǔ)文老師給大家講了一個(gè)關(guān)于小紅帽打敗大灰狼的故事。
(老師講了故事。)
04
修改病句病句類型
語(yǔ)序不當(dāng)、搭配不當(dāng)、成分殘缺或贅余、結(jié)構(gòu)混亂、表意不明、不合邏輯。
一、成分殘缺
1.春天來了,越來越來暖和了。(春天來了,天氣越來越來暖和了。)2.灑在沙灘上,沙灘上一片銀白。(月光灑在沙灘上,沙灘上一片銀白。)3.學(xué)了《愛迪生》這一課受到了教育。(學(xué)了《愛迪生》這一課我受到了教育。)4.雷鋒全心全意為人民服務(wù)的事跡。
(雷鋒全心全意為人民服務(wù)的事跡修復(fù)我們學(xué)習(xí)。)
二、成分贅余
1.聯(lián)歡會(huì)上,他首先第一個(gè)走上臺(tái)表演節(jié)目。聯(lián)歡會(huì)上,他第一個(gè)走上臺(tái)表演節(jié)目。
2.奶奶的菜園里種了茄子、西紅柿、黃瓜和蔬菜。奶奶的菜園里種了茄子、西紅柿、黃瓜。3.我經(jīng)常閱讀、看科幻小說。我經(jīng)常閱讀科幻小說。
4.松鼠喜歡把窩搭在高大的大樹上。松鼠喜歡把窩搭在高大的樹上。
三、表意不明
1、李紅有時(shí)候經(jīng)常和張明在一起打球。李紅經(jīng)常和張明在一起打球。
2、妹妹找不到爸爸媽媽心里很著急。妹妹找不到爸爸媽媽她心里很著急。
3、有人主張接受,有人主張反對(duì),他同意這種主張。有人主張接受,有人主張反對(duì),他同意第一種主張。
4、全班同學(xué)都參加了這次公益活動(dòng),只有張剛沒有參加。全班同學(xué)除了張剛以外都參加了這次公益活動(dòng)。
四、搭配不當(dāng)
1、今天聯(lián)歡會(huì)上的音樂和舞蹈真好看。今天聯(lián)歡會(huì)上的雜技和舞蹈真好看。
2、我很喜歡參加自然博物館。我很喜歡參觀自然博物館。
3、戰(zhàn)士們冒著傾盆大雨和泥濘的小路前進(jìn)。戰(zhàn)士們冒著傾盆大雨和踩著泥濘的小路前進(jìn)。
4、戰(zhàn)斗正在熱烈地進(jìn)行著。戰(zhàn)斗正在激烈地進(jìn)行著。
五、語(yǔ)序不當(dāng)
1、我們學(xué)校師生全體去參觀科技館。我們學(xué)校全體師生去參觀科技館。
2、王麗在演唱會(huì)上唱了優(yōu)美的一支歌。王麗在演唱會(huì)上唱了一支優(yōu)美的歌。
3、美術(shù)和音樂這兩門功課對(duì)我很感興趣。我對(duì)美術(shù)和音樂這兩門功課很感興趣。
4、李華被同學(xué)們一定評(píng)為三好學(xué)生。
李華被一定同學(xué)們?cè)u(píng)為“三好學(xué)生”。
5、學(xué)校把“學(xué)雷鋒積極分子”的名單已經(jīng)公布出來了。
學(xué)校已經(jīng)把“學(xué)雷鋒積極分子”的名單公布出來了。
05
“把”字句和“被”字句
(1)這個(gè)故事里的主人公迷住了我。
“把”字句:這個(gè)故事里的主人公把我迷住了?!氨弧弊志洌何冶贿@個(gè)故事里的主人公迷住了。(2)大風(fēng)卷起的塵土遮住了我的視線。
“把”字句:大風(fēng)卷起的塵土把我的視線遮住了?!氨弧弊志洌何业囊暰€被大風(fēng)卷起的塵土遮住了。
(3)經(jīng)過一千多次的試驗(yàn),愛迪生終于找到了適合做燈絲的材料?!鞍选弊志洌航?jīng)過一千多次的試驗(yàn),愛迪生終于把適合做燈絲的材料找到了?!氨弧弊志洌航?jīng)過一千多次的試驗(yàn)適合做燈絲的材料,終于被愛迪生找到了。
06
小學(xué)語(yǔ)文句子句型轉(zhuǎn)換練習(xí)題
一、按要求寫句子
1、把“把”字句改成“被”字句。
疲勞和干渴,把它們折磨得有氣無力。
它們被疲勞和干渴,折磨得有氣無力。
2、把“被”字句改成“把”字句。
我的錯(cuò)誤馬上被朋友們糾正了。
朋友們馬上把我的錯(cuò)誤糾正了。
3、改變?cè)~序,意思保持不變。
出金華城大約5公里到羅甸。
出金華城到羅甸大約5公里。
雨從早到晚嘩嘩嘩嘩地下個(gè)不停。雨嘩嘩嘩嘩地從早到晚下個(gè)不停。
4、改變?cè)~序,改變句意。那些來南京的客人都很熱情。那些南京來的客人都很熱情。這幾道題你全沒有做對(duì)。
這幾道題你沒有全做對(duì)。
5、把反問句改成陳述句。
我們哪里有近道,還不和你們是一條道?
我們沒有近道,還和你們是一條道。
毒刑拷打算得了什么?死亡也無法叫我開口。
毒刑拷打不算什么。死亡也無法叫我開口。都是你自己找的,我怎么幫得了你的忙?
都是你自己找的,我?guī)筒涣四愕拿Α?/p>
6、把陳述句改成反問句。
貓的性格實(shí)在有些古怪。
難道 貓的性格沒有些古怪嗎?
在這個(gè)長(zhǎng)滿了紅銹的魚鉤上,閃爍著燦爛的金色的光芒。
難道在這個(gè)長(zhǎng)滿了紅銹的魚鉤上,沒有閃爍著燦爛的金色的光芒嗎?
7、把直接引語(yǔ)改成間接引語(yǔ)。周瑜長(zhǎng)嘆一聲,說:“諸葛亮神機(jī)妙算,我真不如他?!?/p>
周瑜長(zhǎng)嘆一聲說,諸葛亮神機(jī)妙算,他真不如諸葛亮。山姆握著珊迪的手說:“我會(huì)永遠(yuǎn)照顧你的?!?/p>
山姆握著珊迪的手說,他會(huì)永遠(yuǎn)照顧珊迪的。
張林告訴我:“要是星期日下雨,我們就不去看電影?!?/p>
張林告訴我,要是星期日下雨,就不去看電影了。
8、把間接引語(yǔ)改成直接引語(yǔ)。
媽媽嚴(yán)肅地對(duì)我說,馬上就要期末考試了,我一定要認(rèn)真復(fù)習(xí),不要辜負(fù)老師和她對(duì)我的一片期望。
媽媽嚴(yán)肅地對(duì)我說:“馬上就要期末考試了,你一定要認(rèn)真復(fù)習(xí),不要辜負(fù)老師和我對(duì)你的一片期望?!?/p>
二、照樣子寫句子
1、例:李老師推開門走進(jìn)教室。小明走進(jìn)食堂拿起碗走向窗口。(連動(dòng)句)
2、例:夜空的繁星,仿佛碧波上撒滿的寶石。海面上的波光,仿佛地上閃閃發(fā)光的金子。(比喻句)
3、例:井岡山是中國(guó)革命的搖籃。
西湖,就是鑲嵌在這天堂里的一顆明珠。(比喻句)
4、例:敵人使用了燃燒彈,邱少云的周圍成了一片火海。陽(yáng)光之下,湖面成了金色的鏡子。
5、例:天空的星星快活地眨著眼睛。
寧?kù)o的夜晚,只有那天上的星星在竊竊私語(yǔ)。(擬人句)
6、這些信件和報(bào)紙給千家萬戶帶來了希望、歡樂和溫暖。
那些星星和月亮給千家萬戶送去了光明,送去了希冀,送去了慰藉。(排比句)
三、按要求寫句
1、欣欣向榮
①用來形容花草樹木的什么:
春天來了,大地一派欣欣向榮的景象?、谟脕肀扔魇聵I(yè)的 改革開放后,教育戰(zhàn)線出現(xiàn)了欣欣向榮的新局面。
2、驕傲
①用來表示褒義的:
身為中國(guó)人我感到無比驕傲!五星紅旗在奧運(yùn)會(huì)場(chǎng)高高飄揚(yáng),中國(guó)人都很驕傲。②用來表示貶義的(指不謙虛):
成績(jī)好也不能驕傲,應(yīng)該保持下去。他是個(gè)很有能力的年輕人,但是有點(diǎn)驕傲。
3、“成了” 寫成比喻句: 夜幕下,樹影搖來?yè)u去,成了幽靈。4.“天空中的小星星” 寫成擬人句:
夜空中的小星星眨著眼睛,似乎對(duì)你微笑。
5、好像 寫成比喻句:
這一朵朵菊花,遠(yuǎn)看好像一個(gè)個(gè)色彩鮮艷的繡球。寫成不是比喻句的: 李芳好像她的媽媽。
6.媽媽對(duì)我說:“我上班去了,你中午在家自己溫習(xí)功課?!?改成轉(zhuǎn)述句)媽媽對(duì)我說,她上班去了,讓我中午在家自己溫習(xí)功課。7.這塊地里的菜秧是我種下的。
①(改成反問句)這塊地里的菜秧是我種下的嗎?
②(改成否定句)這塊地里的菜秧不是我種下的。8.我們遇到困難,怎么能退縮呢?(改成陳述句)我們遇到困難,不能退縮。9.這活潑的小孩是我的好朋友。(改成反問句)這活潑的小孩難道不是我的好朋友嗎?
10.齊這船舷的菜葉和垃圾填沒了這只船和那只船之間的空隙。
改成“把”字句:齊這船舷的菜葉和垃圾把這只船和那只船之間的空隙填沒了。
改成“被”字句:這只船和那只船之間的空隙被齊這船舷的菜葉和垃圾填沒了。11.一大滴松脂滴下來,正好包住了一個(gè)蒼蠅可一個(gè)蜘蛛。
改成“把”字句:一大滴松脂滴下來,正好把一個(gè)蒼蠅可一個(gè)蜘蛛包住了。
改成“被”字句:一大滴松脂滴下來,一個(gè)蒼蠅可一個(gè)蜘蛛正好被包住了。12.我們祖國(guó)的崇山峻嶺蘊(yùn)藏著豐富的煤和石油。(縮句)崇山峻嶺蘊(yùn)藏著煤和石油。
13.我不小心把陳明的飛機(jī)模型摔壞了。(改成“被”字句)陳明的飛機(jī)模型被我我不小心摔壞了。
14.曹操被周瑜的軍隊(duì)打得丟盔棄甲,狼狽逃竄。(改成“把”字句)周瑜的軍隊(duì)把曹操打得丟盔棄甲,狼狽逃竄。
15.這些北京來的客人水平非常高。(改變?cè)~序,改變意思)這些來北京的客人水平非常高。16.我家在市圖書管附近住。(改變?cè)~序,意思不變)我家住在市圖書管附近。
四、把下面的反問句改為陳述句
1、大家都能辦到的事,難道我就不能辦到嗎? 大家都能辦到的事,我就一定能辦到。
2、雷鋒精神怎么會(huì)過時(shí)呢?
雷鋒精神不會(huì)過時(shí)。
3、知識(shí)是無止境的,我們有什么理由驕傲自滿,故步自封呢? 知識(shí)是無止境的,我們沒有理由驕傲自滿,故步自封。
4、冬天來了,春天還會(huì)遠(yuǎn)嗎? 冬天來了,春天不會(huì)遠(yuǎn)了
五、把下面的陳述句改為反問句
1、這個(gè)真實(shí)的故事使我深受感動(dòng)。這個(gè)真實(shí)的故事怎么不使我深受感動(dòng)呢?
2、我們不能辜負(fù)老師對(duì)我們的殷切希望。我們?cè)趺茨芄钾?fù)老師對(duì)我們的殷切希望呢?
3、春風(fēng)吹綠了田野。難道春風(fēng)沒有吹綠了田野嗎?
4、是春風(fēng)吹綠了田野。難道不是春風(fēng)吹綠了田野嗎?
5、我們不能做損人利己的事。我們?cè)趺茨茏鰮p人利己的事呢?
六、以文明用語(yǔ)的要求,將下列話換個(gè)說法
1、喂,媽,今天開學(xué)了,快給錢。你好,媽媽,今天開學(xué)了,能給錢嗎?
2、奶奶,學(xué)校號(hào)召我們捐款救災(zāi),快給我五元錢。奶奶,學(xué)校號(hào)召我們捐款救災(zāi),請(qǐng)給我五元錢吧。
3、喂,老頭,把鋤頭借我用一下。你好,老爺爺,請(qǐng)把鋤頭借我用一下好嗎!
4、小紅,把窗關(guān)一下。小紅,請(qǐng)把窗關(guān)一下。
七、將下列句子改為第三人稱轉(zhuǎn)述
1、貝多芬說:“我是來彈一首曲子給這位姑娘聽的?!?貝多芬說,他是來彈一首曲子給這位姑娘聽的。
2、小紅說:“今天下午學(xué)校組織到野外活動(dòng),我必須參加。” 小紅說,今天下午學(xué)校組織到野外活動(dòng),她必須參加。
3、藺相如說:“這塊璧有點(diǎn)兒小問題,讓我指給您看?!?藺相如說,這塊璧有點(diǎn)兒小問題,讓他指給您看。
4、藺相如說:“秦王若有誠(chéng)意換璧,我就把璧交給他:“ 藺相如說,秦王若有誠(chéng)意換璧,他就把璧交給秦王。
第五篇:java 中常用的方法總結(jié)
8月1日
練習(xí):
合理覆蓋Cat數(shù)據(jù)類型的,equals()方法
Cat.java 覆蓋 hashCode()返回的整型值是唯一的int hashCode()用法:
一般使用String提供hashCode的編碼 +基本數(shù)據(jù)類型
hashCode 生成原則: 當(dāng)對(duì)象內(nèi)容一致時(shí),生成的hashCode必須是一樣的當(dāng)對(duì)象內(nèi)容不致時(shí),生成的hashCode必須是唯一的HashtableTest1.java
hashtable 中的key如果是自定義數(shù)據(jù)類型,那么它必須覆蓋equals()和hashCode()//考試 hashCode()ArrayList * Hashtable * 其他的存儲(chǔ)方式:
LinkedList //特點(diǎn):可以刪除指定位置數(shù)據(jù)
練習(xí):
向LinkedList添加:
A B C D
打印出時(shí)為: DCBA LinkedListTest.java
練習(xí)(MyQueueTest.java):
模擬一個(gè)隊(duì)伍(隊(duì)列),去買票一個(gè)動(dòng)作
思路: 模擬一個(gè)隊(duì)列(add)模擬出列(removeXXXX)
//先買票的人,先出隊(duì)列——先入先出
隊(duì)伍是一個(gè)特殊數(shù)據(jù)結(jié)構(gòu),特點(diǎn):FIFO(先入先出)
HashSet //不允許重復(fù)元素
集合框架類的特點(diǎn): Collection 接口是一組允許重復(fù)的對(duì)象 Set接口繼承Collection,但不允許重復(fù)使用自己內(nèi)部的一個(gè)排列機(jī)制 List接口繼承Collection,允許重復(fù),以元素安插的次序來放置元素,不會(huì)重新排列。Map接口是一組成對(duì)的鍵——值對(duì)象,即所持有的是key—value pairs。Map中不能有重復(fù)的key。擁有自己內(nèi)部機(jī)制。在集合框架類中有兩大類接口: 5.1 Collection 5.2 Map
注意:集合框架類——容器,容器中存儲(chǔ)引用數(shù)據(jù)類型
繼承關(guān)系:
接口 實(shí)現(xiàn) 歷史集合類型
Set HashSet TreeSet
List ArrayList Vector LinkedList Stack
Map HashMap Hashtable TreeMap Properties
集合框架類解決的問題?變長(zhǎng)數(shù)組操作的效率。
集合框架類的特點(diǎn):Vector 2 ArrayList * 3 Hashtable * 4 HashSet 5 Properties
集合框架類的使用:聲明
private Vector vec;2 構(gòu)造中實(shí)例化
vec = new vector();向容器中添加數(shù)據(jù):
vec.add();練習(xí):
FILOTest.java
第一個(gè)進(jìn)來,最后一個(gè)出去
FILO------棧
練習(xí):
將Student類作為Hashtable的key StudentHash 1 Student StudentHash(主類)StudentHash.java 8月2日
練習(xí):
使用HashMap進(jìn)行數(shù)據(jù)的存儲(chǔ),與遍歷
.keySet()//返回key的集合(Set)
.values()//返回value的列表(ArrayList)HashMapTest.java
HashMap與Hashtable的區(qū)別:
Hashtable是非同步的(效率高)
HashMap是同步的(效率低)
獲得系統(tǒng)java的相關(guān)的環(huán)境變量:
System.getProperties();//可以返回
Properties數(shù)據(jù)類型(是Map的子類),內(nèi)容為系統(tǒng)的全部環(huán)境變量
練習(xí):
打印輸出系統(tǒng)中全部的環(huán)境變量:
//2 了解Properties,還可以與文件系統(tǒng)交互
PropertiesTest.java 思路: Properties p = System….2 遍歷p 復(fù)習(xí):
java.lang:
String特點(diǎn)
常用構(gòu)造:
String(byte[] bytes)//將byte型數(shù)組轉(zhuǎn)換為字符串
String(char[] ch)//將char型數(shù)組轉(zhuǎn)換為字符串
String(char[] value, int offset, int count)
//將char[]轉(zhuǎn)換為字符串,offset從那里開始(0)//count(char.length)個(gè)數(shù)
常用方法: char charAt(int index)String str = “ABC”;Char ch = str.charAt(0);ch ==A;String concat(String str)//連接字符串==”+”號(hào) boolean equalsIgnoreCase(String anotherString)//忽略大小寫比較byte[] getBytes()// 將字符串處理為byte[] int indexOf(String str)//判斷字符串所在的索引位置,如果描述的字符串不存在,返回值為-1 int lastIndexOf(String str)//字符串所在的最后一個(gè)索引位置,如果描述的字符串不存在,返回值為-1 int length()//返回字符串的長(zhǎng)度 String replace(char oldChar,char newChar)//字符串替換 boolean startsWith(String prefix)// 判斷字符串的開頭,是否有匹配的字符串 10 boolean endsWitn(String prerfix)//判斷字符串的結(jié)尾,是否有匹配的字符串String substring(int beginIndex, int endIndex)//字符串的截取char[] toCharArray()//將字符串處理為char[] 13 String toLowerCase()//將字符串處理為小寫String toUpperCase()//將字符串處理為大寫String trim()//除去字符串左右兩邊的空格StringBuffer //初始化的容量16 構(gòu)造:
StringBuffer()//初始化容量 16 StringBuffer(10)//初始化容量 10 StringBuffer(String str)方法:
StringBuffer append(float f)// 向StirngBuffer添加內(nèi)容
int capacity()// 返回容量
int length()// 返回StringBufferInt實(shí)際存儲(chǔ)長(zhǎng)度
StringBuilde(效率高)==StringBuffer 基本數(shù)據(jù)類型的包裝包:
Byte b = new Byte();Int Integer char Character
int a = Integer.parseInt(“11”);System常用的方法:
System.gc();
System.exit(0);//退出java程序,0代表正常退出,非0代表異常退出
System.arraycopy()//數(shù)組的拷貝
System.currentTimeMillis()//系統(tǒng)毫秒(1970)
System.getProperties()//系統(tǒng)環(huán)境變量
Math 算術(shù)類:
Math.abs()// 絕對(duì)值
max min
random //1.0----0.0的隨機(jī)值
round //四舍五入
Runtime // 獲得系統(tǒng)運(yùn)行環(huán)境,通常用于java調(diào)用
//第三方應(yīng)用程序(.exe).exec(“ ”)java.util
Date //獲得系統(tǒng)時(shí)間,不考慮時(shí)區(qū)
構(gòu)造:
Date()//獲得系統(tǒng)時(shí)間
Date(long date)//根據(jù)用戶傳入的系統(tǒng)毫秒獲取時(shí)間
方法:
toString()格式化日期: java.text.SimpleDateFormat 構(gòu)造:
SimpleDateFormat(String str)方法:
String format(date)
Calendar //日期,可以考慮時(shí)區(qū)
固定用法:
Calendar cal = Calendar.getInstance();//時(shí)區(qū)
TimeZone tz = TimeZone.getTimeZone(“GMT + 8:00”);Calendar cal = Calendar.getInstance(tz);常用的方法:
Date getTime();//返回當(dāng)前系統(tǒng)時(shí)區(qū)
int get(int filed);// Calendar.靜態(tài)變量
Random 構(gòu)造:
Random()方法:
int nextInt(xxxx)//返回指定范圍的隨機(jī)數(shù)字
需要可以變長(zhǎng)的數(shù)組,可以提高效率
集合框架類:一組相同元素的集合。Vector 構(gòu)造:
Vector()//無參構(gòu)造,初始化容量為10 方法:
Boolean add(E e)//向容器中存儲(chǔ)數(shù)據(jù)
Void addElement(E obj)//向容器中存儲(chǔ)數(shù)據(jù)
elements()//為Enumeration提供容器的地址Enumeration //應(yīng)用于容器元素的遍歷
方法:
boolean hasMoreElements()//判斷指針是否還有數(shù)據(jù)
E nextElement()//返回當(dāng)前的元素,并且指針下移
ArrayList 構(gòu)造:
ArrayList()//初始化容量 10 方法:
add()
iterator()//為Iterator()提供容器的地址
Iterator: //遍歷容器中的元素
方法:
boolean hasNext()// 判斷指針是否還有數(shù)據(jù)
E next()//返回當(dāng)前的元素,并且指針下移
Vector 與ArrayList的區(qū)別:
Vector效率低,線程同步 ArrayList 效率高,線程非同步
Hashtable //存儲(chǔ)數(shù)據(jù)時(shí),通過key,value的方式成對(duì)存儲(chǔ)
//只要知道key可以一次性操作value 方法:
put(key,value)//向Hashtable容器存儲(chǔ)數(shù)據(jù)
elements()//返回Enumeration value的地址
key()//返回Enumeration 提供key的地址
E get(key)//根據(jù)表述的key一次獲得value remove(Object key)//根據(jù)表述的key刪除value
Hashtable中key是一個(gè)自定義的數(shù)據(jù)類型,那么這個(gè)自定義類型,必須合理覆蓋Object;public boolean equals(Object obj)public int hashCode()HashMap(同步)
LinkedList //鏈表——提供了方便的操作方法
方法:
addFirst()removeFirst()addLast()removeLast()繼承關(guān)系:
Collection Set-------不允許重復(fù)數(shù)據(jù)List---------允許重復(fù)數(shù)據(jù)
Collection list = new ArrayList();//面向接口
Map
使用官方類庫(kù)方法:結(jié)合面向?qū)ο蟮乃枷?/p>
1.1 這個(gè)類的作用
1.2 這個(gè)類的構(gòu)造
1.3 這個(gè)類的常用方法一些特殊類的固定用法
8月3日
java.io //為硬盤文件的讀,寫提供功能
File //在java中就代表磁盤上的一個(gè)文件
//它只可以訪問這個(gè)文件的屬性,并且它可以創(chuàng)建,刪除文件,但是,它不可以控制文件中的內(nèi)容
構(gòu)造:
File(String pathname)示例:聲明
File f;構(gòu)造中初始化
//f代表當(dāng)前目錄下的new.txt f = new File(“new,txt”);3 方法:
boolean createNewFile()//新建一個(gè)空文件
boolean delete()//刪除這個(gè)文件
練習(xí):
在當(dāng)前目錄下創(chuàng)建一個(gè)新的文件判斷這個(gè)文件是否存在
1.1 不存在,則創(chuàng)建一個(gè)新的文件
1.2存在,則輸出這個(gè)文件的修改時(shí)間
新建項(xiàng)目:IO
新建類:FileTest.java 2 輸出文件產(chǎn)相關(guān)信息
2.1 這個(gè)文件的名字
2.2 這個(gè)文件的絕對(duì)路徑
I/O的基本原理:
流(stream):流是指在計(jì)算機(jī)的輸入輸出之間運(yùn)動(dòng)的數(shù)據(jù)序列。是用于I/O編程的抽象概念,表示線性的,順序的輸入和輸出的數(shù)據(jù)流。
流分為兩類:
輸入流:代表從外設(shè)流入計(jì)算機(jī)的數(shù)據(jù)序列:輸入流:源流(source stream)輸出流:代表從計(jì)算機(jī)流向外設(shè)的數(shù)據(jù)序列:輸出流:目的流(sink stream)在java中流的分類:
主體是程序 字節(jié)流---------代表傳輸?shù)臄?shù)據(jù)類型為byte類型,1字節(jié)
1.1 InputStream //可以從磁盤中讀取文件
1.2 OutputStream //可以向磁盤中的文件寫入內(nèi)容 字符流---------代表傳輸?shù)臄?shù)據(jù)類型為char類型,2字節(jié)
2.1 Reader(輸入流):可以從磁盤中讀取文件
2.2 Writer(輸出流):可以向磁盤中的文件寫入內(nèi)容
使用字節(jié)流:
練習(xí):ByteStream中實(shí)現(xiàn)文件的寫入,讀取 使用FileOutputStream 向hello.txt中寫入內(nèi)容“MyFirstOutput” 1.1 FileOutputStream 的構(gòu)造:
FileOutputStream(File file)
FileOutputStream(File file, Boolean append)
//append參數(shù):為true,將會(huì)以追加模式進(jìn)行寫操作
false,將會(huì)覆蓋原有文件
1.2 方法:
void write(byte[] b)
void close()//釋放資源使用FileInputStream()2.1 構(gòu)造
2.2 方法
int read(byte[] b)
//將讀出的內(nèi)容存儲(chǔ)到byte[] 中,并且返回?cái)?shù)組的長(zhǎng)度
操作資源三大步: 打開
操作(讀,寫)
關(guān)閉
ByteStream.java
練習(xí):使用java實(shí)現(xiàn)copy指令:
MyCopy
要求:java MyCopy args1 args2
結(jié)果:將args1中的內(nèi)容copy到args2 思路:
1、從args1中讀取內(nèi)容
2、將讀取的內(nèi)容寫入到args2 書寫:
1、考慮需要的屬性
2、構(gòu)造初始化屬性
3、方法實(shí)現(xiàn)copy
int read()//無參read方法 返回byte型數(shù)據(jù)
int read(byte[ ] b)//返回讀取內(nèi)容的長(zhǎng)度
8月5日
字符流:char FileReader 構(gòu)造:
FileReader(String filename)// 以參數(shù)中的文件名,創(chuàng)建輸入字符流
FileWriter 練習(xí):
FileRW.java
使用字符流實(shí)現(xiàn)文件的讀寫
注:程序結(jié)構(gòu)參考ByteStream 字符流的特點(diǎn):
由于字符流在write()實(shí)現(xiàn)時(shí),使用了緩沖機(jī)制,所以在write()完畢后,必須同步緩沖區(qū)。
調(diào)用:
flush();或者
close();
System.in //可以接收用戶在終端的輸入
int read()//返回用戶在程序運(yùn)行過程中的鍵盤輸入,為此輸入的ascii碼
System.in.read();//程序會(huì)阻塞狀態(tài),只有當(dāng)用戶輸入字符,并且按下“回車鍵”程序,才會(huì)繼續(xù)運(yùn)行
ReadTest.java 流鏈:
目的:
在實(shí)際開發(fā)中,提高基本的字節(jié)流或者字符流的讀取效率(讀寫效率)和更方便的操作機(jī)制(除了char,byte,String),還可以操作其他數(shù)據(jù)類型。
注意:一個(gè)程序很少只用一個(gè)流類來處理數(shù)據(jù),通常都有使用一系列流類叫流鏈來處理。
字節(jié)流: BufferedInputStream BufferdeOutputStream
//特點(diǎn):為基本的I/O操作,提供緩存區(qū)域
//提高字節(jié)流的操作效率
BufferedTest.java DataInputStream DataOutputStream
//特點(diǎn):為各種基本,特殊數(shù)據(jù)類型提供操作方式
DataTest.java 輸入流量
DataSource-àFileInputStream-àBufferedInputStream--àDataInputStream-àProgram 輸出流量
Program-à DataOutputStream-à BufferedOutputStream-àFileOutputStream àDatasink 練習(xí):
字符流版本的,MyCopy MyCharCopy.java 流鏈:
字節(jié)流的流鏈
字符流的流鏈
BufferedReader BufferedWriter
//提高I/O操作效率
BufferedRW.java
Alt + shift + z //自動(dòng)寫出異常
System.in.read();
System.in //java 中的標(biāo)準(zhǔn)輸入流
ReadTest.java 8月6日 將對(duì)象存入到文件中(序列化存儲(chǔ))* ObjectSave.java 手工實(shí)現(xiàn)步驟:
將User數(shù)據(jù)類型的構(gòu)造,封裝,進(jìn)行編寫
使用DataxxxStream進(jìn)行讀寫;
將User對(duì)象的數(shù)據(jù)進(jìn)行拆分(setxxx,getxxx)序列化存儲(chǔ)實(shí)現(xiàn):
ObjectInputStream ObjectOutputStream //對(duì)于對(duì)象的讀和寫
方法:
Object readObject()
void writeObject(Object obj)
注意:讀或?qū)懙膶?duì)象,必須實(shí)現(xiàn)Serializable(序列化)接口
示例:
//這個(gè)對(duì)象支持了序列化存儲(chǔ) //可以使用readObject()|| writeObject()方法了
class User implements Serializable { }
ObjectSerializable.java
回顧:java.io File //特點(diǎn):代表磁盤的文件,只可以訪問文件的屬性流的概念:只要計(jì)算機(jī)中線性的,順序的數(shù)據(jù)輸入,輸出
輸入流:
輸出流:
java的角度:
字節(jié)流:
InputStream //讀取內(nèi)容
OutputStream //寫入內(nèi)容
特點(diǎn):基本數(shù)據(jù)類型byte 字符流:
Writer: Reader:
特點(diǎn):基本數(shù)據(jù)類型char 3 字節(jié)流和字符流的應(yīng)用:
字節(jié)流:
FileInputStream FileOutputStream 字符流:
FileWriter FileReader 流鏈(包裝流)
特點(diǎn):
增加I/O的操作效率。(分配了一段內(nèi)存-----緩沖區(qū))
提供名種基本數(shù)據(jù)類型和特殊類型的操作機(jī)制
字節(jié)流: BufferedInputStream
BufferedOutputStream //特點(diǎn):提高I/O操作效率DataInputStream
DataOutputStream //特點(diǎn):提供基本,特殊類型操作
字符流: BufferedReader //特點(diǎn):readLine();BufferedWriter 5 序列化存儲(chǔ):
特點(diǎn):將對(duì)象進(jìn)行存儲(chǔ),讀取ObjectInputStream ObjectOutputStream
注意:要序列化存儲(chǔ)對(duì)象必須實(shí)現(xiàn):Serializable 接口 大練習(xí):
使用
java.lang java.util java.io
實(shí)現(xiàn)一個(gè)用戶的管理查詢系統(tǒng)
功能:添加用戶瀏覽用戶刪除用戶查找用戶退出程序
見UserManager文件夾
解決數(shù)據(jù)的累加問題: 程序一運(yùn)行的時(shí)候,就將文件中的所有數(shù)據(jù)保存在內(nèi)存中。
EOFException //文件指針已經(jīng)到末尾時(shí),還要繼續(xù)讀取
User user
User =(User)is.readObject();While(user!= null){
array.add(user);ois.readObject();}
ArrayList:
int size()//可以返回ArrayList中的元素個(gè)數(shù)
E get(int index)//根據(jù)用戶傳入的索引值,返回所存儲(chǔ)數(shù)據(jù)
remove(int index)//刪除指定位置的元素