În Java există mai multe moduri de a citi un fișier text, în funcție de dimensiunea datelor și de cazul de utilizare. The java.io şi pachete java.nio.file oferiți mai multe clase pentru a gestiona eficient citirea fișierelor. Să discutăm abordările comune una câte una.
1. Utilizarea clasei BufferedReader
BufferedReader clasa citește text dintr-un flux de caractere și memorează caracterele pentru o citire eficientă. Este adesea înfășurat în jurul unui FileReader sau InputStreamReader pentru a îmbunătăți performanța.
Sintaxă
JavaBufferedReader in = new BufferedReader (Cititor în dimensiune int);
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); } }
Ieșire
Ieșire2. Clasa FileReader pentru Citirea fișierului text
The Clasa FileReader este folosit pentru a citi fișiere text în Java. Citește caractere dintr-un fișier și este potrivit pentru citirea textului simplu. Constructorii acestei clase presupun că codificarea implicită a caracterelor și dimensiunea implicită a bufferului de octeți sunt adecvate.
Constructorii definiți în această clasă sunt după cum urmează:
- FileReader (fișier fișier): Creează un nou FileReader din care să citească fișierul
- FileReader(FileDescriptor fd): Creează un nou FileReader din care să se citească FileDescriptorul
- FileReader(String fileName): Creează un nou FileReader cu numele fișierului din care se citește
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); } }
Ieșire
Ieșire3. Clasă de scaner pentru citirea fișierului text
Clasa de scaner oferă o modalitate simplă de a citi fișiere text și de a analiza tipuri sau șiruri de caractere primitive folosind expresii regulate . Împarte intrarea în token-uri folosind un delimitator (în mod implicit, spații albe).
Exemplul 1: Cu utilizarea buclelor
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()); } }
Ieșire
ce este computerul
IeșireExemplul 2: Fără a folosi bucle
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()); } }
Ieșire
Ieșire4. Citirea întregului fișier într-o listă
Putem citi un întreg fișier text într-o listă folosind Files.readAllLines() metoda din pachetul java.nio.file . Fiecare linie din fișier devine un element din listă.
Sintaxă
public static List readAllLines(Path pathCharset cs) aruncă IOException
Această metodă recunoaște următoarele ca terminatori de linie:
- u000Du000A -> Întoarcere car + avans de linie
- u000A -> Line Feed
- u000D -> Retur transport
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()); } }
Ieșire
Ieșire5. Citiți un fișier text ca șir
Putem citi un întreg fișier text ca un singur șir în Java. Acest lucru este util atunci când doriți să procesați conținutul fișierului ca întreg, mai degrabă decât rând cu linie.
Sintaxă:
ce este s în python
Date șir = new String(Files.readAllBytes(Paths.get(fileName)));
Exemplu:
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); } }
Ieșire
Ieșire Creați un test