亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java讀取文本文件的各種方法

 更新時(shí)間:2021年11月25日 09:55:34   作者:海擁  
這篇文章主要介紹了Java讀取文本文件的各種方法,在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReader、BufferedReader或Scanner來讀取文本文件,感興趣的小伙伴和小編一起進(jìn)入文章了解更多內(nèi)容吧,希望能幫助到大家

前言:

有多種寫入和讀取文本文件的方法。這在處理許多應(yīng)用程序時(shí)是必需的。在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReader、BufferedReaderScanner來讀取文本文件。每個(gè)實(shí)用程序都提供了一些特殊的東西,例如 BufferedReader 為快速讀取提供數(shù)據(jù)緩沖,而 Scanner 提供解析能力。

1、方法

  • 使用 BufferedReader
  • 使用 Scanner
  • 使用文件閱讀器類
  • 讀取列表中的整個(gè)文件
  • 將文本文件讀取為字符串

我們還可以同時(shí)使用 BufferReader ScannerJava 中逐行讀取文本文件。然后 Java SE 8 引入了另一個(gè) Stream java.util.stream.Stream,它提供了一種惰性且更有效的方式來讀取文件。

讓我們更深入地討論上述每個(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 周圍,例如 FileReadersInputStreamReaders,如下所示:

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);

	}

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

方法二、使用 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);

	}

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

方法三、使用 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());

    }

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

示例 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());

    }

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

方法四、讀取列表中的整個(gè)文件

從文件中讀取所有行。此方法可確保在讀取所有字節(jié)或拋出 I/O 錯(cuò)誤或其他運(yùn)行時(shí)異常時(shí)關(guān)閉文件。使用指定的字符集將文件中的字節(jié)解碼為字符。?

2、語法

public static List readAllLines(Path path,Charset cs)throws IOException

此方法將以下內(nèi)容識(shí)別為行終止符:?

\u000D 后跟 \u000A,回車后跟換行符

\u000A,換行

\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());

    }

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

方法五、將文本文件讀取為字符串

例子:

package io;

import java.nio.file.*;;

public class ReadTextAsString {

    public static String readFileAsString(String fileName)throws Exception{

            String data = "";

            data = 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);

    }

}

輸出:

如果你想學(xué)習(xí)編程可以參考海擁的博客

到此這篇關(guān)于Java讀取文本文件的各種方法的文章就介紹到這了,更多相關(guān)Java讀取文本文件方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java main 方法面試題的詳細(xì)整理

    Java main 方法面試題的詳細(xì)整理

    這篇文章主要介紹了Java main 方法面試題的詳細(xì)整理的相關(guān)資料,這里介紹了10個(gè)經(jīng)典面試題的方法,需要的朋友可以參考下
    2017-09-09
  • java字節(jié)字符轉(zhuǎn)換流操作詳解

    java字節(jié)字符轉(zhuǎn)換流操作詳解

    這篇文章主要介紹了java字節(jié)字符轉(zhuǎn)換流操作,結(jié)合實(shí)例形式詳細(xì)分析了Java字符流轉(zhuǎn)換相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Spring中使用Hystrix實(shí)現(xiàn)熔斷詳解

    Spring中使用Hystrix實(shí)現(xiàn)熔斷詳解

    這篇文章主要介紹了Java中使用Hystrix實(shí)現(xiàn)熔斷詳解,對(duì)于第一個(gè)問題,查看hystrix源碼可以看到,如果有緩存配置是優(yōu)先使用的緩存的,因此如果配置更新,必須要更新緩存,不能使用Hystrix.reset()方法來更新緩存,需要的朋友可以參考下
    2023-12-12
  • 淺談web服務(wù)器項(xiàng)目中request請(qǐng)求和response的相關(guān)響應(yīng)處理

    淺談web服務(wù)器項(xiàng)目中request請(qǐng)求和response的相關(guān)響應(yīng)處理

    這篇文章主要介紹了淺談web服務(wù)器項(xiàng)目中request請(qǐng)求和response的相關(guān)響應(yīng)處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java中java.lang.ClassCastException異常原因及解決方法

    Java中java.lang.ClassCastException異常原因及解決方法

    大家好,本篇文章主要講的是Java中java.lang.ClassCastException異常原因及解決方法,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 使用RedisAtomicLong優(yōu)化性能問題

    使用RedisAtomicLong優(yōu)化性能問題

    這篇文章主要介紹了使用RedisAtomicLong優(yōu)化性能問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于spring?data?jpa?@query返回map的踩坑記錄

    基于spring?data?jpa?@query返回map的踩坑記錄

    這篇文章主要介紹了基于spring?data?jpa?@query返回map的踩坑記錄,具有很好的參考價(jià)值,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題

    解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題

    這篇文章主要給大家解決了IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題,文中有詳細(xì)的解決步驟,如果有遇到一樣問題的小伙伴,可以參考閱讀本文
    2023-09-09
  • spring boot打jar包發(fā)布的方法

    spring boot打jar包發(fā)布的方法

    這篇文章主要介紹了spring boot打jar包發(fā)布的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 淺談SpringMVC請(qǐng)求映射handler源碼解讀

    淺談SpringMVC請(qǐng)求映射handler源碼解讀

    這篇文章主要介紹了淺談SpringMVC請(qǐng)求映射handler源碼解讀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論