logo

Įvairūs būdai, kaip skaityti tekstinį failą Java

„Java“ yra keli būdai, kaip skaityti tekstinį failą, atsižvelgiant į duomenų dydį ir naudojimo atvejį. The java.io ir java.nio.file paketai Pateikite keletą klasių, kad galėtumėte efektyviai tvarkyti failų skaitymą. Aptarkime bendrus metodus po vieną.

1. BufferedReader klasės naudojimas

BufferedReader klasė skaito tekstą iš simbolių srauto ir saugo simbolius, kad būtų galima efektyviai skaityti. Jis dažnai apvyniojamas aplink a Failų skaitytuvas arba InputStreamReader pagerinti našumą.

Sintaksė

BufferedReader in = new BufferedReader(Reader int dydžio);



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


Išvestis

Naudojant BufferReader' title=Išvestis

2. „FileReader“ klasė, skirta tekstiniam failui skaityti

The „FileReader“ klasė naudojamas tekstiniams failams skaityti Java. Jis skaito simbolius iš failo ir tinka paprastam tekstui skaityti. Šios klasės kūrėjai mano, kad numatytoji simbolių koduotė ir numatytasis baitų buferio dydis yra tinkami. 

Šioje klasėje apibrėžti konstruktoriai yra tokie:

  • FileReader (failo failas): Sukuria naują „FileReader“, atsižvelgiant į failą, iš kurio galima skaityti
  • FileReader (FileDescriptor fd): Sukuria naują „FileReader“, turintį „FileDescriptor“, iš kurio galima skaityti
  • FileReader (eilutės failo pavadinimas): Sukuria naują failų skaitytuvą, nurodant failo, iš kurio norite skaityti, pavadinimą
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);  } } 


Išvestis

Naudojant „FileReader“.' loading='lazy' title=Išvestis

3. Skaitytuvo klasė tekstiniam failui skaityti

Skaitytuvų klasė suteikia paprastą būdą skaityti tekstinius failus ir analizuoti primityvius tipus ar eilutes naudojant reguliarios išraiškos . Jis padalija įvestį į žetonus naudodamas skyriklį (pagal numatytuosius nustatymus tarpas).

1 pavyzdys: Naudojant kilpas

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


Išvestis

np.sujungti
Naudojant BufferReader' loading='lazy' title=Išvestis

2 pavyzdys: Nenaudojant kilpų

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


Išvestis

Skaitomas visas failas be kilpos' loading='lazy' title=Išvestis

4. Viso failo skaitymas sąraše

Visą tekstinį failą galime perskaityti į sąrašą naudodami Files.readAllLines() metodas iš java.nio.failo paketą . Kiekviena failo eilutė tampa vienu sąrašo elementu.

Sintaksė

public static List readAllLines(Path pathCharset cs)meta IOException

Šis metodas atpažįsta šiuos linijos užbaigimo elementus: 

  • u000Du000A -> Karietos grąžinimas + linijos tiekimas
  • u000A -> Linijos padavimas
  • u000D -> Karietos grąžinimas
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());  } } 


Išvestis

ReadFileIntoList' loading='lazy' title=Išvestis

5. Skaityti tekstinį failą kaip eilutę

„Java“ galime perskaityti visą tekstinį failą kaip vieną eilutę. Tai naudinga, kai norite apdoroti failo turinį kaip visumą, o ne eilutę po eilutės.

Sintaksė:

Java 8

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

Pavyzdys:

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

Išvestis

ReadTextAsString' loading='lazy' title=Išvestis

Sukurti viktoriną