真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

優(yōu)秀java代碼閱讀 java閱讀源碼必備

JAVA如何閱讀代碼更高效?

個(gè)人經(jīng)驗(yàn),

專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、商城系統(tǒng)網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

讀文件有4種方法,

1 按行讀

2 按規(guī)定大小字節(jié)讀

3 按流讀

4 隨機(jī)讀取文件

我認(rèn)為第3種是最好的,而且他是通吃的,

下面是我從網(wǎng)上找來的,你看看有用嗎?

====================================

前兩天用到讀寫文件的操作,上網(wǎng)搜了一些這方面的資料。很有用的。

java中多種方式讀文件

一、多種方式讀文件內(nèi)容。

1、按字節(jié)讀取文件內(nèi)容

2、按字符讀取文件內(nèi)容

3、按行讀取文件內(nèi)容

4、隨機(jī)讀取文件內(nèi)容

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.RandomAccessFile;

import java.io.Reader;

public class ReadFromFile {

/**

* 以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件。

* @param fileName 文件的名

*/

public static void readFileByBytes(String fileName){

File file = new File(fileName);

InputStream in = null;

try {

System.out.println("以字節(jié)為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");

// 一次讀一個(gè)字節(jié)

in = new FileInputStream(file);

int tempbyte;

while((tempbyte=in.read()) != -1){

System.out.write(tempbyte);

}

in.close();

} catch (IOException e) {

e.printStackTrace();

return;

}

try {

System.out.println("以字節(jié)為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");

//一次讀多個(gè)字節(jié)

byte[] tempbytes = new byte[100];

int byteread = 0;

in = new FileInputStream(fileName);

ReadFromFile.showAvailableBytes(in);

//讀入多個(gè)字節(jié)到字節(jié)數(shù)組中,byteread為一次讀入的字節(jié)數(shù)

while ((byteread = in.read(tempbytes)) != -1){

System.out.write(tempbytes, 0, byteread);

}

} catch (Exception e1) {

e1.printStackTrace();

} finally {

if (in != null){

try {

in.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以字符為單位讀取文件,常用于讀文本,數(shù)字等類型的文件

* @param fileName 文件名

*/

public static void readFileByChars(String fileName){

File file = new File(fileName);

Reader reader = null;

try {

System.out.println("以字符為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");

// 一次讀一個(gè)字符

reader = new InputStreamReader(new FileInputStream(file));

int tempchar;

while ((tempchar = reader.read()) != -1){

//對(duì)于windows下,rn這兩個(gè)字符在一起時(shí),表示一個(gè)換行。

//但如果這兩個(gè)字符分開顯示時(shí),會(huì)換兩次行。

//因此,屏蔽掉r,或者屏蔽n。否則,將會(huì)多出很多空行。

if (((char)tempchar) != 'r'){

System.out.print((char)tempchar);

}

}

reader.close();

} catch (Exception e) {

e.printStackTrace();

}

try {

System.out.println("以字符為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");

//一次讀多個(gè)字符

char[] tempchars = new char[30];

int charread = 0;

reader = new InputStreamReader(new FileInputStream(fileName));

//讀入多個(gè)字符到字符數(shù)組中,charread為一次讀取字符數(shù)

while ((charread = reader.read(tempchars))!=-1){

//同樣屏蔽掉r不顯示

if ((charread == tempchars.length)(tempchars[tempchars.length-1] != 'r')){

System.out.print(tempchars);

}else{

for (int i=0; icharread; i++){

if(tempchars[i] == 'r'){

continue;

}else{

System.out.print(tempchars[i]);

}

}

}

}

} catch (Exception e1) {

e1.printStackTrace();

}finally {

if (reader != null){

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以行為單位讀取文件,常用于讀面向行的格式化文件

* @param fileName 文件名

*/

public static void readFileByLines(String fileName){

File file = new File(fileName);

BufferedReader reader = null;

try {

System.out.println("以行為單位讀取文件內(nèi)容,一次讀一整行:");

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

//一次讀入一行,直到讀入null為文件結(jié)束

while ((tempString = reader.readLine()) != null){

//顯示行號(hào)

System.out.println("line " + line + ": " + tempString);

line++;

}

reader.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null){

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 隨機(jī)讀取文件內(nèi)容

* @param fileName 文件名

*/

public static void readFileByRandomAccess(String fileName){

RandomAccessFile randomFile = null;

try {

System.out.println("隨機(jī)讀取一段文件內(nèi)容:");

// 打開一個(gè)隨機(jī)訪問文件流,按只讀方式

randomFile = new RandomAccessFile(fileName, "r");

// 文件長(zhǎng)度,字節(jié)數(shù)

long fileLength = randomFile.length();

// 讀文件的起始位置

int beginIndex = (fileLength 4) ? 4 : 0;

//將讀文件的開始位置移到beginIndex位置。

randomFile.seek(beginIndex);

byte[] bytes = new byte[10];

int byteread = 0;

//一次讀10個(gè)字節(jié),如果文件內(nèi)容不足10個(gè)字節(jié),則讀剩下的字節(jié)。

//將一次讀取的字節(jié)數(shù)賦給byteread

while ((byteread = randomFile.read(bytes)) != -1){

System.out.write(bytes, 0, byteread);

}

} catch (IOException e){

e.printStackTrace();

} finally {

if (randomFile != null){

try {

randomFile.close();

} catch (IOException e1) {

}

}

}

}

/**

* 顯示輸入流中還剩的字節(jié)數(shù)

* @param in

*/

private static void showAvailableBytes(InputStream in){

try {

System.out.println("當(dāng)前字節(jié)輸入流中的字節(jié)數(shù)為:" + in.available());

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String fileName = "C:/temp/newTemp.txt";

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

二、將內(nèi)容追加到文件尾部

import java.io.FileWriter;

import java.io.IOException;

import java.io.RandomAccessFile;

/**

* 將內(nèi)容追加到文件尾部

*/

public class AppendToFile {

/**

* A方法追加文件:使用RandomAccessFile

* @param fileName 文件名

* @param content 追加的內(nèi)容

*/

public static void appendMethodA(String fileName,String content){

try {

// 打開一個(gè)隨機(jī)訪問文件流,按讀寫方式

RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");

// 文件長(zhǎng)度,字節(jié)數(shù)

long fileLength = randomFile.length();

//將寫文件指針移到文件尾。

randomFile.seek(fileLength);

randomFile.writeBytes(content);

randomFile.close();

} catch (IOException e){

e.printStackTrace();

}

}

/**

* B方法追加文件:使用FileWriter

* @param fileName

* @param content

*/

public static void appendMethodB(String fileName, String content){

try {

//打開一個(gè)寫文件器,構(gòu)造函數(shù)中的第二個(gè)參數(shù)true表示以追加形式寫文件

FileWriter writer = new FileWriter(fileName, true);

writer.write(content);

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String fileName = "C:/temp/newTemp.txt";

String content = "new append!";

//按方法A追加文件

AppendToFile.appendMethodA(fileName, content);

AppendToFile.appendMethodA(fileName, "append end. n");

//顯示文件內(nèi)容

ReadFromFile.readFileByLines(fileName);

//按方法B追加文件

AppendToFile.appendMethodB(fileName, content);

AppendToFile.appendMethodB(fileName, "append end. n");

//顯示文件內(nèi)容

ReadFromFile.readFileByLines(fileName);

}

}

-----------------------------------------------------------------------------------------------------------------------------------------------

寫入文件

try{

FileWriter fw=new FileWriter(SystemConfig.getRealPath()+"WEB-INF/url.txt");

fw.write("movie"+name);

fw.close();

}catch(IOException e){

e.printStackTrace();

}

讀文件中內(nèi)容

try{

FileReader fr = null;

fr = new FileReader(SystemConfig.getRealPath()+"WEB-INF/url.txt");

BufferedReader br=new BufferedReader(fr);

String Line = null;

Line = br.readLine();

while(Line!=null){

s=Line;

Line=null;

br.close();

fr.close();

}

}catch(IOException e1){

e1.printStackTrace();

}

上傳文件

try {

InputStream stream = getUpFile().getInputStream();//把文件讀入

OutputStream bos = new FileOutputStream(filePath + "movie" +name);//建立一個(gè)上傳文件的輸出流

int bytesRead = 0;

byte[] buffer = new byte[1026];

while ( (bytesRead = stream.read(buffer, 0, 1026)) != -1) {

bos.write(buffer, 0, bytesRead);//將文件寫入服務(wù)器

}

bos.close();

stream.close();

}catch(Exception e){

System.err.print(e);

}

如何閱讀 Java 開源代碼

準(zhǔn)備好環(huán)境,比如安裝好Eclipse,IDEA等你喜歡的集成開發(fā)環(huán)境

準(zhǔn)備好Maven環(huán)境

創(chuàng)建一個(gè)項(xiàng)目,把你要研究的開源項(xiàng)目pom引入進(jìn)來

使用maven把源代碼下載下來

寫一個(gè)簡(jiǎn)單的例子使用開源代碼

分析從啟動(dòng)開始,斷點(diǎn)調(diào)試,看看調(diào)用了哪些方法,每個(gè)方法是怎么實(shí)現(xiàn)的

所有方法都斷點(diǎn)了一遍,你在這個(gè)過程中實(shí)際上已經(jīng)了解了開源代碼是怎么實(shí)現(xiàn)具體功能的了

優(yōu)秀Java程序員都是怎樣寫代碼的

1.編碼之前想一想

用10分鐘,20分鐘甚至30分鐘的時(shí)間來想想你需要什么,想想什么樣的設(shè)計(jì)模式適合你將要編碼的東西。你會(huì)很慶幸“浪費(fèi)”了那幾分鐘,當(dāng)你不得不更改或添加?xùn)|西到代碼中時(shí)你就不將將浪費(fèi)幾分鐘而是要花費(fèi)更多的時(shí)間。

2.注釋你的代碼

說真的,沒有什么比兩個(gè)月后檢查自己的代碼,卻不記得它用來干什么更糟糕的了。注釋所有重要的內(nèi)容,當(dāng)然那些顯而易見的就免了吧。

3.寫干凈的代碼

錯(cuò)落有致。使用空格。根據(jù)功能模塊化你的代碼。閱讀RobertC.Martin寫的《CleanCode》,非常有幫助。此外,遵循代碼約定/標(biāo)準(zhǔn)(如,尤其如果是共享的代碼。

4.重構(gòu)

沒有人喜歡用那些超級(jí)長(zhǎng)的方法。這通常(幾乎總是)意味著你混雜了功能。用更易于管理的方法分離代碼。還能使得代碼更可重用。

5.不要復(fù)制粘貼代碼

如果你有兩個(gè)或兩個(gè)以上相同的代碼塊,那么你可能做錯(cuò)了什么。閱讀第4條。

6.使用有意義的名稱

雖然命名int變量為“elligent”或char為“mander”是很好笑;但是,這樣的名稱并不能說明變量是用來做什么的。

7.測(cè)試代碼

測(cè)試,測(cè)試,測(cè)試,還是測(cè)試。測(cè)試你的代碼。不要等到已經(jīng)做完程序之后再來測(cè)試,否則當(dāng)你發(fā)現(xiàn)一個(gè)巨大的bug,卻不知道它來自于哪里來的時(shí)候,你會(huì)追悔莫及。

自動(dòng)化測(cè)試通常都是有價(jià)值的。它還有助于節(jié)省大量重測(cè)試和回歸測(cè)試的時(shí)間。

北大青鳥java培訓(xùn):提高代碼閱讀能力的技巧有哪些?

對(duì)于學(xué)習(xí)軟件開發(fā)的人來說,學(xué)會(huì)閱讀源代碼是非常重要的,然而很多人并不具備閱讀源代碼的能力。

很多人不喜歡閱讀源代碼,認(rèn)為這是非常無聊的事情。

如果不會(huì)閱讀源代碼,對(duì)于后面寫代碼是非常困難的,很多開發(fā)人員主要把重心放在寫代碼上,反而忽略代碼的閱讀。

閱讀代碼是非常關(guān)鍵的,下面廣東電腦培訓(xùn)為大家介紹閱讀代碼的技巧。

1、學(xué)會(huì)運(yùn)行代碼運(yùn)行代碼是閱讀代碼的第一步,這樣能夠了解關(guān)于項(xiàng)目的很多細(xì)節(jié),并且了解怎么進(jìn)行運(yùn)行,掌握庫的使用方法。

這樣是了解一個(gè)項(xiàng)目最好的方法,如果能夠自己了解和編寫相關(guān)的項(xiàng)目,這樣對(duì)于使用框架和庫會(huì)有自己的想法。

2、找到高層次的邏輯當(dāng)您開始閱讀項(xiàng)目的代碼時(shí),會(huì)涉及到每個(gè)細(xì)節(jié)。

相反的,你還需要掌握高層次結(jié)構(gòu),從這個(gè)地方找到入口點(diǎn),在很多大型項(xiàng)目開發(fā)中都可以使用這種方法。

如果是進(jìn)行web程序開發(fā),那么廣東IT培訓(xùn)建議應(yīng)該查看不同的包,例如存儲(chǔ)業(yè)務(wù)邏輯的位置,存儲(chǔ)UI代碼的位置,控制器所在的位置等等。

3、了解和使用工具很多工具都可以有助于源代碼閱讀,并且對(duì)可視化代碼有很大的幫助。

在使用過程中,廣東IT培訓(xùn)認(rèn)為IntelliJIdea工具能夠?qū)Ш皆创a,允許使用單詞的一部分,甚至單詞的縮寫進(jìn)行搜索。

您還應(yīng)該學(xué)習(xí)鍵盤的快捷鍵。

使用鼠標(biāo)導(dǎo)航源代碼可能會(huì)非常無聊和緩慢,鍵盤快捷鍵可以更快的進(jìn)行跳轉(zhuǎn)。

4、了解語言更深入地了解特定語言有助于提高您的代碼閱讀技能。

每種語言都有自己的約定,樣式和語法。

這些知識(shí)可以幫助您快速熟悉特定代碼。

其中廣東電腦培訓(xùn)發(fā)現(xiàn)在Java語言中,方法名稱以小寫字母開頭,而在C#語言中,方法名稱以大寫字母開頭。

了解這種差異可以幫助你從源代碼中找到識(shí)別方法。

怎樣高效的閱讀JavaWeb項(xiàng)目源代碼

首先要理清楚代碼結(jié)構(gòu)和業(yè)務(wù)結(jié)構(gòu)(應(yīng)該有些文檔或者大的流程圖),這是閱讀具體代碼的前提。

閱讀Java?web項(xiàng)目的代碼:

你需要找到

View層的代碼:前端頁面、圖片、資源文件都在其中。

Controller層的代碼:控制試圖與模型層以及數(shù)據(jù)傳遞。

Service層的代碼:業(yè)務(wù)邏輯。

Dao層的代碼:數(shù)據(jù)庫訪問邏輯。

從web.xml?-?appcontext.xml?-?xxx


文章名稱:優(yōu)秀java代碼閱讀 java閱讀源碼必備
網(wǎng)頁地址:http://weahome.cn/article/hgogpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部