logo

Szövegfájlok olvasásának különböző módjai Java nyelven

Java nyelven többféleképpen is olvashat szöveges fájlokat az adatmérettől és a használati esettől függően. A java.io és java.nio.file csomagok több osztályt biztosít a fájlolvasás hatékony kezeléséhez. Beszéljük meg egyenként az elterjedt megközelítéseket.

1. A BufferedReader osztály használata

BufferedReader osztály szöveget olvas be egy karakterfolyamból, és puffereli a karaktereket a hatékony olvasás érdekében. Gyakran körbetekerik a FileReader vagy InputStreamReader a teljesítmény javítására.

Szintaxis

BufferedReader in = new BufferedReader(Reader int méretben);



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


Kimenet

A BufferReader használata' title=Kimenet

2. FileReader osztály szöveges fájl olvasásához

A FileReader osztály Java szöveges fájlok olvasására szolgál. Karaktereket olvas be egy fájlból, és alkalmas egyszerű szöveg olvasására. Ennek az osztálynak a konstruktorai feltételezik, hogy az alapértelmezett karakterkódolás és az alapértelmezett bájtpufferméret megfelelő. 

Az ebben az osztályban meghatározott konstruktorok a következők:

  • FileReader (fájlfájl): Létrehoz egy új FileReader-t az olvasandó fájl alapján
  • Fájlolvasó (FileDescriptor fd): Létrehoz egy új FileReader-t a FileDescriptorral, amelyből olvasni kell
  • Fájlolvasó(karakterlánc fájlnév): Létrehoz egy új FileReader-t az olvasni kívánt fájl nevével
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);  } } 


Kimenet

A FileReader használata' loading='lazy' title=Kimenet

3. Szkenner osztály szöveges fájl olvasásához

Szkenner osztály egyszerű módot biztosít szöveges fájlok olvasására és primitív típusok vagy karakterláncok elemzésére reguláris kifejezések . A bemenetet tokenekre osztja fel határolóval (alapértelmezés szerint szóközzel).

1. példa: Hurkok használatával

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


Kimenet

vödör fajta
A BufferReader használata' loading='lazy' title=Kimenet

2. példa: Hurok használata nélkül

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


Kimenet

ReadingEntireFileWithoutLoop' loading='lazy' title=Kimenet

4. A teljes fájl beolvasása egy listában

Egy teljes szöveges fájlt beolvashatunk egy listába a segítségével Files.readAllLines() módszer a java.nio.file csomag . A fájl minden sora a lista egy elemévé válik.

Szintaxis

public static List readAllLines(Path pathCharset cs) dobja az IOExceptiont

Ez a metódus a következőket ismeri fel vonallezáróként: 

  • u000Du000A -> Kocsi visszatérés + soremelés
  • u000A -> Soremelés
  • u000D -> Kocsi vissza
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());  } } 


Kimenet

ReadFileIntoList' loading='lazy' title=Kimenet

5. Szövegfájl olvasása karakterláncként

Javaban egy teljes szövegfájlt egyetlen Stringként tudunk olvasni. Ez akkor hasznos, ha a fájl tartalmát egészben szeretné feldolgozni, nem pedig soronként.

Szintaxis:

faktoriális java-ban

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

Példa:

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

Kimenet

ReadTextAsString' loading='lazy' title=Kimenet

Kvíz létrehozása