java8 Stream流逐行處理文本文件
本文中為大家介紹使用java8 Stream API逐行讀取文件,以及根據(jù)某些條件過(guò)濾文件內(nèi)容
1. Java 8逐行讀取文件
在此示例中,我將按行讀取文件內(nèi)容并在控制臺(tái)打印輸出。
Path filePath = Paths.get("c:/temp", "data.txt");
//try-with-resources語(yǔ)法,不用手動(dòng)的編碼關(guān)閉流
try (Stream<String> lines = Files.lines( filePath ))
{
lines.forEach(System.out::println);
}
catch (IOException e)
{
e.printStackTrace();//只是測(cè)試用例,生產(chǎn)環(huán)境下不要這樣做異常處理
}
上面的程序輸出將在控制臺(tái)中逐行打印文件的內(nèi)容。
Never
store
password
except
in mind.
2.Java 8讀取文件–過(guò)濾行
在此示例中,我們將文件內(nèi)容讀取為Stream。然后,我們將過(guò)濾其中包含單詞"password"的所有行。
Path filePath = Paths.get("c:/temp", "data.txt");
try (Stream<String> lines = Files.lines(filePath)){
List<String> filteredLines = lines
.filter(s -> s.contains("password"))
.collect(Collectors.toList());
filteredLines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();//只是測(cè)試用例,生產(chǎn)環(huán)境下不要這樣做異常處理
}
程序輸出。
password
我們將讀取給定文件的內(nèi)容,并檢查是否有任何一行包含"password"然后將其打印出來(lái)。
3.Java 7 –使用FileReader讀取文件
Java 7之前的版本,我們可以使用FileReader方式進(jìn)行逐行讀取文件。
private static void readLinesUsingFileReader() throws IOException
{
File file = new File("c:/temp/data.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null)
{
if(line.contains("password")){
System.out.println(line);
}
}
br.close();
fr.close();
}
以上就是java8 Stream流逐行處理文本文件的詳細(xì)內(nèi)容,更多關(guān)于java8 Stream流處理文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java8新特性之stream流中reduce()求和知識(shí)總結(jié)
- Java8?Stream流根據(jù)多個(gè)字段去重
- java8新特性 stream流的方式遍歷集合和數(shù)組操作
- Java8之Stream流代替For循環(huán)操作
- Java8新特性Stream流實(shí)例詳解
- Java8?Stream流多字段求和、匯聚的實(shí)例
- Java8特性之用Stream流代替For循環(huán)操作詳解
- Java8中的Stream流式操作教程之王者歸來(lái)
- Java8-Stream流操作List去重問(wèn)題
- Java8?函數(shù)式編程stream流使用詳解
相關(guān)文章
Java 并發(fā)編程ArrayBlockingQueue的實(shí)現(xiàn)
這篇文章主要介紹了Java 并發(fā)編程ArrayBlockingQueue的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
解析Spring中@Controller@Service等線程安全問(wèn)題
這篇文章主要為大家介紹解析了Spring中@Controller@Service等線程的安全問(wèn)題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Feign遠(yuǎn)程調(diào)用傳遞對(duì)象參數(shù)并返回自定義分頁(yè)數(shù)據(jù)的過(guò)程解析
這篇文章主要介紹了Feign遠(yuǎn)程調(diào)用傳遞對(duì)象參數(shù)并返回自定義分頁(yè)數(shù)據(jù)的過(guò)程解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Mybatis詳解動(dòng)態(tài)SQL以及單表多表查詢的應(yīng)用
MyBatis的動(dòng)態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語(yǔ)句中實(shí)現(xiàn)某些邏輯,下面這篇文章主要給大家介紹了關(guān)于Mybatis超級(jí)強(qiáng)大的動(dòng)態(tài)SQL語(yǔ)句的相關(guān)資料,需要的朋友可以參考下2022-06-06
Java基礎(chǔ)之String類(lèi)使用與字符串比較
String類(lèi)代表字符串,java程序中的所有字符串文字(例如"abc")都被實(shí)現(xiàn)為此類(lèi)的實(shí)例。本文將詳解String類(lèi)的使用,以及如何進(jìn)行字符串比較2022-08-08

