如何使用BufferedReader循環(huán)讀文件
使用BufferedReader(緩存讀取流)可以每次讀取文件的一行。對于文件內(nèi)容如果是按行為單位排列的話,則使用BufferedReader來讀取文件還是比較方便的。
舉例如下
1、BufferedReader讀取一行
在F盤下有個txt文件,文件內(nèi)容為

import java.io.*;
public class test {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("F:\\test.txt"));
System.out.println(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
結(jié)果為:
哈哈0
2、BufferedReader循環(huán)讀每一行
import java.io.*;
public class test {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("F:\\test.txt"));
String text = null;
//讀取內(nèi)容為null則表示讀到了文件末尾
while ((text = br.readLine()) != null) {
System.out.println(text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
結(jié)果為:
哈哈0
哈哈1
哈哈2
哈哈3
哈哈4
哈哈5
哈哈6
哈哈7
哈哈8
哈哈9
3、注意細(xì)節(jié)
新手如果沒不注意,容易寫成:
import java.io.*;
public class test {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("F:\\test.txt"));
String text = null;
//
while (true) {
if (br.readLine() == null) {
break;
}
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
}
結(jié)果為:
哈哈1
哈哈3
哈哈5
哈哈7
哈哈9
原因
while (true) {
if (br.readLine() == null) {
break;
}
System.out.println(br.readLine());
}
因為在while循環(huán)中, if 語句在做判斷時,其實已經(jīng)讀取了一行,而讀取的這行沒有被打印出來,所以就造成了只打印了一部分。
BufferedReader.rean(buffer)注意事項
最近遇到一個問題
BufferedReader.rean(buffer)
讀取數(shù)據(jù)時,最后一行必須獲取到返回值
len=BufferedReader.rean(buffer)
只能取0到len區(qū)間的數(shù)據(jù),len之后的數(shù)據(jù)為上次讀取過的數(shù)據(jù),原因是因為buffer讀取時不會清空數(shù)組。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud openfeign相互調(diào)用實現(xiàn)方法介紹
在springcloud中,openfeign是取代了feign作為負(fù)載均衡組件的,feign最早是netflix提供的,他是一個輕量級的支持RESTful的http服務(wù)調(diào)用框架,內(nèi)置了ribbon,而ribbon可以提供負(fù)載均衡機制,因此feign可以作為一個負(fù)載均衡的遠程服務(wù)調(diào)用框架使用2022-11-11
Java中的HashMap為什么會產(chǎn)生死循環(huán)
這篇文章主要介紹了Java中的HashMap為什么會產(chǎn)生死循環(huán),HashMap?死循環(huán)是一個比較常見、比較經(jīng)典的問題,下面文章我們就來徹底理解死循環(huán)的原因。需要的小伙伴可以參考一下2022-05-05
RabbitMq報錯reply-code=406 reply-text=PRECONDITION_FAILED
這篇文章主要為大家介紹了RabbitMq報錯reply-code=406 reply-text=PRECONDITION_FAILED分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
@Transactional注解:多個事務(wù)嵌套時,獨立事務(wù)處理方式
這篇文章主要介紹了@Transactional注解:多個事務(wù)嵌套時,獨立事務(wù)處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
一文詳解SpringBoot響應(yīng)壓縮功能的配置與優(yōu)化
Spring Boot的響應(yīng)壓縮功能基于智能協(xié)商機制,需同時滿足很多條件,本文主要為大家詳細(xì)介紹了SpringBoot響應(yīng)壓縮功能的配置與優(yōu)化,需要的可以參考下2025-03-03
Java socket通信模擬QQ實現(xiàn)多人聊天室
Socket在Java實戰(zhàn)網(wǎng)絡(luò)通信編程應(yīng)用中有非常重要的作用,你想要跟別人聯(lián)系都得通過socket占據(jù)端口來實現(xiàn),掌握Socket技術(shù)不僅在聊天應(yīng)用程序中需要用到(比如QQ什么的都都是用socket來寫的),而且對于學(xué)習(xí) Asp.net 也非常有幫助2022-07-07

