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

Į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 BufferReaderIš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“.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

Naudojant BufferReaderIš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 kilposIš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

ReadFileIntoListIš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ė:

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

ReadTextAsStringIšvestis

Sukurti viktoriną