有多種寫入和讀取文本文件的方法 。這在處理許多應(yīng)用程序時(shí)是必需的 。在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReader、BufferedReader或Scanner來讀取文本文件 。每個(gè)實(shí)用程序都提供了一些特殊的東西 , 例如 BufferedReader 為快速讀取提供數(shù)據(jù)緩沖 , 而 Scanner 提供解析能力 。
方法:
- 使用 BufferedReader 類
- 使用 Scanner 類
- 使用文件閱讀器類
- 讀取列表中的整個(gè)文件
- 將文本文件讀取為字符串
讓我們更深入地討論上述每個(gè)方法,最重要的是通過一個(gè)干凈的 Java 程序?qū)崿F(xiàn)它們 。
方法一: 使用BufferedReader類
此方法從字符輸入流中讀取文本 。它確實(shí)緩沖以有效讀取字符、數(shù)組和行 ??梢灾付ň彌_區(qū)大小 , 也可以使用默認(rèn)大小 。對(duì)于大多數(shù)用途 , 默認(rèn)值足夠大 。通常,Reader 發(fā)出的每個(gè)讀取請(qǐng)求都會(huì)導(dǎo)致對(duì)底層字符或字節(jié)流發(fā)出相應(yīng)的讀取請(qǐng)求 。因此,建議將 BufferedReader 包裝在任何 read() 操作可能代價(jià)高昂的 Reader 周圍,例如 FileReaders 和 InputStreamReaders,如下所示:
BufferedReader in = new BufferedReader(Reader in, int size);例子:import java.io.*;public class HY { public static void main(String[] args) throws Exception {File file = new File("C:\\Users\\pankaj\\Desktop\\test.txt");BufferedReader br= new BufferedReader(new FileReader(file));String st;while ((st = br.readLine()) != null)System.out.println(st); }}方法二: 使用 FileReader 類讀取字符文件的便利類 。此類的構(gòu)造函數(shù)假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小是合適的 。
該類中定義的構(gòu)造函數(shù)如下:
- FileReader(File file): 給定要讀取的文件,創(chuàng)建一個(gè)新的 FileReader
- FileReader(FileDescriptor fd): 創(chuàng)建一個(gè)新的 FileReader,給定要從中讀取的 FileDescriptor
- FileReader(String fileName): 創(chuàng)建一個(gè)新的 FileReader,給出要讀取的文件名
import java.io.*;public class GFG { public static void main(String[] args) throws Exception {FileReader fr = new FileReader("C:\\Users\\pankaj\\Desktop\\test.txt");int i;while ((i = fr.read()) != -1)System.out.print((char)i); }}復(fù)制代碼方法 3: 使用 Scanner 類一個(gè)簡(jiǎn)單的文本掃描器,可以使用正則表達(dá)式解析原始類型和字符串 。Scanner 使用分隔符模式將其輸入分解為標(biāo)記 , 默認(rèn)情況下與空格匹配 。然后可以使用各種 next 方法將結(jié)果令牌轉(zhuǎn)換為不同類型的值 。
示例 1: 使用循環(huán)
import java.io.File;import java.util.Scanner;public class ReadFromFileUsingScanner{public static void main(String[] args) throws Exception{File file = new File("C:\\Users\\pankaj\\Desktop\\test.txt");Scanner sc = new Scanner(file);while (sc.hasNextLine())System.out.println(sc.nextLine());}}示例 2: 不使用循環(huán)import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class ReadingEntireFileWithoutLoop{public static void main(String[] args) throws FileNotFoundException{File file = new File("C:\\Users\\pankaj\\Desktop\\test.txt");Scanner sc = new Scanner(file);sc.useDelimiter("\\Z");System.out.println(sc.next());}}方法 4: 讀取列表中的整個(gè)文件從文件中讀取所有行 。此方法可確保在讀取所有字節(jié)或拋出 I/O 錯(cuò)誤或其他運(yùn)行時(shí)異常時(shí)關(guān)閉文件 。使用指定的字符集將文件中的字節(jié)解碼為字符 。
語法:
public static List readAllLines(Path path,Charset cs)throws IOException此方法將以下內(nèi)容識(shí)別為行終止符:\u000D 后跟 \u000A,回車后跟換行符\u000A,換行\(zhòng)u000D,回車例子import java.util.*;import java.nio.charset.StandardCharsets;import java.nio.file.*;import java.io.*;public class ReadFileIntoList{public static List<String> readFileInList(String fileName){List<String> lines = Collections.emptyList();try{lines =Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8);}catch (IOException e){e.printStackTrace();}return lines;}public static void main(String[] args){List l = readFileInList("C:\\Users\\pankaj\\Desktop\\test.java");Iterator<String> itr = l.iterator();while (itr.hasNext())System.out.println(itr.next());}}方法 5: 將文本文件讀取為字符串例子
package io;import java.nio.file.*;;public class ReadTextAsString {public static String readFileAsString(String fileName)throws Exception{String datahttp://www.wokk.cn/= "";data = http://www.wokk.cn/new String(Files.readAllBytes(Paths.get(fileName)));return data;}public static void main(String[] args) throws Exception{String data = readFileAsString("C:\\Users\\pankaj\\Desktop\\test.java");System.out.println(data);}}【java依次讀取對(duì)話框的數(shù)據(jù) java按行讀取文件】如果本文對(duì)你有幫助,別忘記給我個(gè)3連 ,點(diǎn)贊,轉(zhuǎn)發(fā),評(píng)論,以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 新解決Windows 10中javac未識(shí)別為內(nèi)部或外部命令的方法
- 如何驗(yàn)證Java版本是否升級(jí)到最新版
- 如何在C語言中實(shí)現(xiàn)文件內(nèi)容讀取
- JavaScript在HTML文件中的三個(gè)編寫位置
- 如何使用IDEA創(chuàng)建Java項(xiàng)目
- 如何在360瀏覽器中允許所有網(wǎng)站運(yùn)行 JavaScript
- 探究Java中字符串插入位置的算法
- Java代碼實(shí)現(xiàn)獲取本機(jī)電腦IP地址
- Java程序?qū)W習(xí)的關(guān)鍵技巧
- 如何使用R語言讀取Excel數(shù)據(jù)
