使用BufferedReader讀取本地文件的操作
BufferedReader讀取本地文件
在使用BufferedWriter寫入文件時(shí),如果忘記關(guān)閉文件(close)同時(shí)也沒(méi)有調(diào)用flush(),則被寫入的文件中是沒(méi)有內(nèi)容的。
在關(guān)閉文件的同時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用flush()
try {
File file=new File("c://aa.txt");
FileInputStream is=new FileInputStream(file);
InputStreamReader reader=new InputStreamReader(is,"GBK");
BufferedReader br=new BufferedReader(reader);
String line=null;
while ((line=br.readLine())!=null) {
System.out.println(line);
}
reader.close();
br.close();
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
BufferedReader 讀取文件內(nèi)容,原樣輸出
1.新建目標(biāo)類:
package com.xuzhiwen.io;
public class TargetFile {
public static void main(String[] args) {
System.out.println("TargetFile.java");
}
}
2.測(cè)試類:
package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.FileReader;
public class TestBufferedReader {
public static void main(String[] args) throws Exception {
String filepath = "src/com/xuzhiwen/io/TargetFile.java";
BufferedReader read = new BufferedReader(new FileReader(filepath));
String s;
StringBuffer sb = new StringBuffer();
while((s=read.readLine()) != null){
sb.append(s+"\n");
}
read.close();
System.out.println(sb);
}
}
3.輸出結(jié)果為:

4.文件結(jié)構(gòu)樹:

5. 將結(jié)果用StringReader再讀一次:
package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.StringReader;
public class TestBufferedReader {
public static void main(String[] args) throws Exception {
String filepath = "src/com/xuzhiwen/io/TargetFile.java";
BufferedReader read = new BufferedReader(new FileReader(filepath));
String s;
StringBuffer sb = new StringBuffer();
while((s=read.readLine()) != null){
sb.append(s+"\n");
}
read.close();
System.out.println(sb);
StringReader sr = new StringReader(sb.toString());
int c;
while((c=sr.read()) != -1){
System.out.print((char)c);
}
}
}
6. 運(yùn)行結(jié)果如下:

7. 將內(nèi)容寫入文件:
package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringReader;
public class TestBufferedReader {
public static void main(String[] args) throws Exception {
String filepath = "src/com/xuzhiwen/io/TargetFile.java";
BufferedReader read = new BufferedReader(new FileReader(filepath));
String s;
StringBuffer sb = new StringBuffer();
while((s=read.readLine()) != null){
sb.append(s+"\n");
}
read.close();
System.out.println(sb);
System.out.println("==============================================");
StringReader sr = new StringReader(sb.toString());
int c;
while((c=sr.read()) != -1){
System.out.print((char)c);
}
sr.close();
System.out.println("==============================================");
String file = "basic.out";
BufferedReader br = new BufferedReader(new StringReader(sb.toString()));
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
int lineCount = 1;
String ss;
while((ss=br.readLine()) != null){
pw.println(lineCount+": "+ss);
lineCount++;
}
pw.close();
}
}
8. 運(yùn)行結(jié)果:

9. 打開: basic.out文件:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaSE實(shí)現(xiàn)文件壓縮與解壓縮的技巧分享
我們?cè)谌粘?shí)際開發(fā)中,對(duì)于文件壓縮和解壓縮場(chǎng)景,是非常常見的操作,本文詳細(xì)介紹JavaSE中文件壓縮和解壓縮的實(shí)現(xiàn)方法,包括源代碼解析、應(yīng)用場(chǎng)景案例、優(yōu)缺點(diǎn)分析、案例演示、文末總結(jié)等等,請(qǐng)同學(xué)們耐心閱讀2024-03-03
Java?Stream流中的filter()使用方法舉例詳解
filter()是Java?Stream?API中的中間操作,用于根據(jù)給定的Predicate條件篩選流中的元素,它通過(guò)接收一個(gè)返回boolean值的函數(shù)(斷言)作為參數(shù),篩選出滿足條件的元素并收集到新的流中,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11
詳解Spring中singleton?bean如何同時(shí)服務(wù)多個(gè)請(qǐng)求
這篇文章主要介紹了詳解Spring中singleton?bean如何同時(shí)服務(wù)多個(gè)請(qǐng)求2023-02-02
JAVA中使用雙括號(hào)來(lái)初始化靜態(tài)常量的小技巧
這篇文章主要介紹了JAVA中使用雙括號(hào)來(lái)初始化靜態(tài)常量的小技巧,需要的朋友可以參考下2014-06-06
Java中String.split()的最詳細(xì)源碼解讀及注意事項(xiàng)
以前經(jīng)常使用String.split()方法,但是從來(lái)沒(méi)有注意,下面這篇文章主要給大家介紹了關(guān)于Java中String.split()最詳細(xì)源碼解讀及注意事項(xiàng)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
Spring Boot環(huán)境下Mybatis Plus的快速應(yīng)用操作
這篇文章主要介紹了Spring Boot環(huán)境下Mybatis Plus的快速應(yīng)用操作,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
java多線程實(shí)現(xiàn)同步鎖賣票實(shí)戰(zhàn)項(xiàng)目
本文主要介紹了java多線程實(shí)現(xiàn)同步鎖賣票實(shí)戰(zhàn)項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
idea創(chuàng)建javaweb原生項(xiàng)目的實(shí)現(xiàn)示例
這篇文章主要介紹了idea創(chuàng)建javaweb原生項(xiàng)目的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

