logo

Različiti načini čitanja tekstualne datoteke u Javi

U Javi postoji više načina za čitanje tekstualne datoteke ovisno o veličini podataka i slučaju korištenja. The java.io i java.nio.file paketi osigurati nekoliko klasa za učinkovito rukovanje čitanjem datoteke. Raspravljajmo o uobičajenim pristupima jedan po jedan.

1. Korištenje klase BufferedReader

BufferedReader klasa čita tekst iz toka znakova i sprema znakove u međuspremnik za učinkovito čitanje. Često je omotan oko a FileReader ili InputStreamReader za poboljšanje performansi.

Sintaksa

BufferedReader in = new BufferedReader(Reader in int size);



Java
import java.io.*; public class UsingBufferReader {  public static void main(String[] args) throws Exception{    // Creating BufferedReader for Input  BufferedReader bfri = new BufferedReader(  new InputStreamReader(System.in));  System.out.print('Enter the Path : ');  // Reading File name  String path = bfri.readLine();  BufferedReader bfro  = new BufferedReader(new FileReader(path));  String st;  while ((st = bfro.readLine()) != null)  System.out.println(st);  } } 


Izlaz

UsingBufferReader' title=Izlaz

2. Klasa FileReader za čitanje tekstualne datoteke

The Klasa FileReader koristi se za čitanje tekstualnih datoteka u Javi. Čita znakove iz datoteke i prikladan je za čitanje običnog teksta. Konstruktori ove klase pretpostavljaju da su zadano kodiranje znakova i zadana veličina međuspremnika bajtova prikladni. 

Konstruktori definirani u ovoj klasi su sljedeći:

  • FileReader (datoteka): Stvara novi FileReader s obzirom na datoteku za čitanje
  • FileReader(FileDescriptor fd): Stvara novi FileReader s obzirom na FileDescriptor za čitanje
  • FileReader(string filename): Stvara novi FileReader s nazivom datoteke iz koje se čita
Java
import java.io.*; public class UsingFileReader {  public static void main(String[] args) throws Exception  {  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  System.out.print('Enter the Path : ');    // Reading File name  String path = br.readLine();  FileReader fr = new FileReader(path);  int i;    // Holds true till there is nothing to read  while ((i = fr.read()) != -1)  // Print all the content of a file  System.out.print((char)i);  } } 


Izlaz

KorištenjeFileReader' loading='lazy' title=Izlaz

3. Klasa skenera za čitanje tekstualne datoteke

Klasa skenera pruža jednostavan način čitanja tekstualnih datoteka i raščlanjivanja primitivnih tipova ili nizova pomoću regularni izrazi . Dijeli unos u tokene pomoću razdjelnika (prema zadanim razmacima).

Primjer 1: Uz korištenje petlji

Java
import java.io.*; import java.util.Scanner; public class UsingScannerClass  {  public static void main(String[] args) throws Exception  {  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  System.out.print('Enter the Path : ');    // Reading File name  String path = br.readLine();    // pass the path to the file as a parameter  File file = new File(path);    Scanner sc = new Scanner(file);  while (sc.hasNextLine())  System.out.println(sc.nextLine());  } } 


Izlaz

strojopis svaki
UsingBufferReader' loading='lazy' title=Izlaz

Primjer 2: Bez upotrebe petlji

Java
import java.io.*; import java.util.Scanner; public class ReadingEntireFileWithoutLoop {  public static void main(String[] args)  throws IOException  {  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  System.out.print('Enter the Path : ');    // Reading File name  String path = br.readLine();    File file = new File(path);    Scanner sc = new Scanner(file);  // we just need to use \Z as delimiter  sc.useDelimiter('\Z');  System.out.println(sc.next());  } } 


Izlaz

Čitanje cijele datoteke bez petlje' loading='lazy' title=Izlaz

4. Čitanje cijele datoteke na popisu

Možemo pročitati cijelu tekstualnu datoteku u popis pomoću Files.readAllLines() metoda iz paket java.nio.file . Svaki redak u datoteci postaje jedan element na popisu.

Sintaksa

javni statički popis readAllLines(Path pathCharset cs) izbacuje IOException

Ova metoda prepoznaje sljedeće kao terminatore reda: 

  • u000Du000A -> Povratak na prvi redak + prelazak na redak
  • u000A -> Line Feed
  • u000D -> Carriage Return
Java
import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.util.*; public class ReadFileIntoList  {  public static List<String> readFileInList(String fileName)  {  // Created List of String  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)  throws IOException  {    BufferedReader br = new  BufferedReader(new InputStreamReader(System.in));  System.out.print('Enter the Path : ');    // Reading File name  String path = br.readLine();    List l = readFileInList(path);    // Iterator iterating over List  Iterator<String> itr = l.iterator();    while (itr.hasNext())  System.out.println(itr.next());  } } 


Izlaz

ReadFileIntoList' loading='lazy' title=Izlaz

5. Čitanje tekstualne datoteke kao niza

Cijelu tekstualnu datoteku možemo čitati kao jedan String u Javi. Ovo je korisno kada želite obraditi sadržaj datoteke kao cjelinu, a ne liniju po liniju.

Sintaksa:

blokiraj oglase na youtube android

String data = new String(Files.readAllBytes(Paths.get(fileName)));

Primjer:

Java
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  {  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  System.out.print('Enter the Path : ');    // Reading File name  String path = br.readLine();    String data = readFileAsString(path);    System.out.println(data);  } } 

Izlaz

ReadTextAsString' loading='lazy' title=Izlaz

Napravi kviz