最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言:

有多種寫入和讀取文本文件的方法。這在處理許多應(yīng)用程序時(shí)是必需的。在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReaderBufferedReaderScanner來讀取文本文件。每個(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、語(yǔ)法

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)文章

  • SpringBoot源碼分析之bootstrap.properties文件加載的原理

    SpringBoot源碼分析之bootstrap.properties文件加載的原理

    本文通過訪問看到bootstrap.properties中的信息獲取到了,同時(shí)age也被application.properties中的屬性覆蓋掉了。加載順序到底是什么?為什么會(huì)覆蓋呢?我們接下來分析下吧
    2021-12-12
  • SpringBoot擴(kuò)展點(diǎn)EnvironmentPostProcessor實(shí)例詳解

    SpringBoot擴(kuò)展點(diǎn)EnvironmentPostProcessor實(shí)例詳解

    這篇文章主要介紹了SpringBoot擴(kuò)展點(diǎn)EnvironmentPostProcessor的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • Java基礎(chǔ)之MapReduce框架總結(jié)與擴(kuò)展知識(shí)點(diǎn)

    Java基礎(chǔ)之MapReduce框架總結(jié)與擴(kuò)展知識(shí)點(diǎn)

    本章,是MapReduce的最終章,我在寫本章的時(shí)候,發(fā)現(xiàn)前面忘記介紹MpaTask與ReduceTask了,所以本章補(bǔ)上哈,另外還有兩個(gè)擴(kuò)展的知識(shí)點(diǎn),講完這些,我會(huì)對(duì)整個(gè)MapReduce進(jìn)行總結(jié)一下,讓大家再次了解MapReduce的工作流程,更加清晰地認(rèn)識(shí)MapReduce ,需要的朋友可以參考下
    2021-05-05
  • Java線程Dump分析工具jstack解析及使用場(chǎng)景

    Java線程Dump分析工具jstack解析及使用場(chǎng)景

    這篇文章主要介紹了Java線程Dump分析工具jstack解析及使用場(chǎng)景,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • MybatisPlus如何處理Mysql的json類型

    MybatisPlus如何處理Mysql的json類型

    這篇文章主要介紹了MybatisPlus如何處理Mysql的json類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 實(shí)例總結(jié)Java多線程編程的方法

    實(shí)例總結(jié)Java多線程編程的方法

    在本篇文章里我們給大家總結(jié)了Java多線程編程的方法以及相關(guān)實(shí)例代碼,需要的朋友們可以學(xué)習(xí)下。
    2018-10-10
  • Java利用釘釘機(jī)器人實(shí)現(xiàn)發(fā)送群消息

    Java利用釘釘機(jī)器人實(shí)現(xiàn)發(fā)送群消息

    這篇文章主要為大家詳細(xì)介紹了Java語(yǔ)言如何通過釘釘機(jī)器人發(fā)送群消息通知,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-09-09
  • 使用springboot自動(dòng)配置源碼解讀

    使用springboot自動(dòng)配置源碼解讀

    自動(dòng)裝配是Spring Boot的一個(gè)核心特性,允許程序員在開發(fā)中更加專注于業(yè)務(wù)邏輯,而不是花費(fèi)大量的時(shí)間去配置和管理第三方組件,當(dāng)開發(fā)者在pom.xml文件中添加了某個(gè)依賴后,Spring Boot通過自動(dòng)配置的方式,將這些第三方組件的實(shí)例自動(dòng)注入到IOC容器中
    2024-11-11
  • JavaWeb踩坑記錄之項(xiàng)目訪問不到html文件

    JavaWeb踩坑記錄之項(xiàng)目訪問不到html文件

    這篇文章主要給大家介紹了關(guān)于JavaWeb踩坑記錄之項(xiàng)目訪問不到html文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaWeb具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    今天教大家如何使用Java將excel數(shù)據(jù)導(dǎo)入MySQL,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴呢很有幫助,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

台南市| 同仁县| 鄢陵县| 杭锦旗| 南开区| 蒲江县| 瑞安市| 禹城市| 横山县| 修文县| 宁远县| 枣强县| 科技| 阳信县| 海城市| 临朐县| 偃师市| 栾川县| 六枝特区| 买车| 克什克腾旗| 杭锦旗| 惠水县| 岚皋县| 辉县市| 山阴县| 闵行区| 房产| 新巴尔虎左旗| 汪清县| 东平县| 武汉市| 黄平县| 收藏| 保靖县| 马边| 金寨县| 普兰县| 蒙阴县| 镇江市| 泰顺县|