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
JavaBufferedReader in = new BufferedReader(Reader int méretben);
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
Kimenet2. 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
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
Kimenet3. 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
Javaimport 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
Kimenet2. példa: Hurok használata nélkül
Javaimport 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
Kimenet4. 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
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
Kimenet5. 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:
Javapackage 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
Kimenet Kvíz létrehozása