像我們經(jīng)常會(huì)遇到這樣的事情,例如一個(gè)txt文件中有姓名和電話,這個(gè)時(shí)候很經(jīng)常就需要將名字和電話號(hào)碼進(jìn)行提取操作,這個(gè)時(shí)候就可以利用Java中io來(lái)實(shí)現(xiàn)了。

這里我就不具體介紹io中的字節(jié)流和字符流的異同點(diǎn)了,有興趣的同學(xué)可以自己百度百度。
今天主要是介紹一下如何實(shí)現(xiàn)對(duì)文件內(nèi)容的獲取還有就是對(duì)獲取的文件內(nèi)容進(jìn)行修改操作。下面看具體案例介紹。
這個(gè)是案例最終要實(shí)現(xiàn)的效果,在姓名和電話號(hào)碼直接添加分割符號(hào)。
這里有一點(diǎn)需要主要的是,這個(gè)案例并不是直接在原先的txt文檔上面進(jìn)行修改的,而是新建一個(gè)新的txt文件重新寫入新的內(nèi)容。
好了廢話不多說(shuō),看看這個(gè)案例具體是怎么具體實(shí)現(xiàn)的。
這個(gè)案例分為三個(gè)模塊:1.文件讀取模塊,2.姓名電話分離模塊,3.文件寫入模塊
1.文件讀取模塊:
/**
* 功能:Java讀取txt文件的內(nèi)容
* 步驟:1:先獲得文件句柄
* 2:獲得文件句柄當(dāng)做是輸入一個(gè)字節(jié)碼流,需要對(duì)這個(gè)輸入流進(jìn)行讀取
* 3:讀取到輸入流后,需要讀取生成字節(jié)流
* 4:一行一行的輸出。readline()。
* 備注:需要考慮的是異常情況
* @param filePath
*/
public static String readTxtFile(String filePath) {
StringBuilder content = new StringBuilder("");
try {
String encoding = "UTF-8";
File file = new File(filePath);
if (file.isFile() && file.exists()) {
InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
String[] result = getNamePhone(lineTxt);
System.out.println(lineTxt);
content.append(result[0] + "----" + result[1]);
content.append("\\r\\n");// txt換行
}
read.close();
} else {
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("讀取文件內(nèi)容出錯(cuò)");
e.printStackTrace();
}
return content.toString();
}2.姓名電話分離模塊:
public static String[] getNamePhone(String str) {
String[] result = new String[2];
int index = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
index = i;
break;
}
}
result[0] = str.substring(0, index);
result[1] = str.substring(index);
return result;
}3.文件寫入模塊:
public static void printFile(String content) {
BufferedWriter bw = null;
try {
File file = new File("D:/filename.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}通過(guò)這三個(gè)模塊就可以實(shí)現(xiàn)對(duì)文件的讀取操作了,然后對(duì)信息進(jìn)行處理,最后將處理好的信息添加到新的文件中去。
這里需要注意的是:項(xiàng)目的編碼格式要寫成utf-8,否則會(huì)出現(xiàn)亂碼的情況。
到這里文件的讀寫操作就完結(jié)了,是不是特別簡(jiǎn)單方便。
感謝大家的閱讀,希望大家收益多多。
本文轉(zhuǎn)自: https://blog.csdn.net/linzhiqiang0316/article/details/71744340
推薦教程:《java教程》
文章題目:Java對(duì)文件的讀寫操作(圖文詳解)
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article2/cgpdoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)