Java'da bir metin dosyasını okumanın farklı yolları

Java'da bir metin dosyasını okumanın farklı yolları

Java'da, veri boyutunuza ve kullanım durumunuza bağlı olarak bir metin dosyasını okumanın birden fazla yolu vardır. java.io Ve java.nio.dosya paketleri Dosya okumayı verimli bir şekilde gerçekleştirmek için çeşitli sınıflar sağlar. Ortak yaklaşımları tek tek tartışalım.

1. BufferedReader Sınıfını Kullanmak

Tamponlu Okuyucu sınıf, metni bir karakter akışından okur ve verimli okuma için karakterleri arabelleğe alır. Çoğu zaman bir şeyin etrafına sarılır. Dosya Okuyucu veya Giriş Akışı Okuyucusu performansı artırmak için.

Sözdizimi

BufferedReader in = new BufferedReader(int boyutunda okuyucu);

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


Çıkış

BufferReaderÇıkış

2. Metin dosyasını okumak için FileReader sınıfı

FileReader sınıfı Java'da metin dosyalarını okumak için kullanılır. Bir dosyadaki karakterleri okur ve düz metin okumak için uygundur. Bu sınıfın yapıcıları, varsayılan karakter kodlamasının ve varsayılan bayt arabellek boyutunun uygun olduğunu varsayar. 

Bu sınıfta tanımlanan yapıcılar aşağıdaki gibidir:

  • Dosya Okuyucusu(Dosya dosyası): Okunacak Dosyaya göre yeni bir FileReader oluşturur
  • FileReader(FileDescriptor fd): Okunacak FileDescriptor'a göre yeni bir FileReader oluşturur
  • FileReader(Dize dosyaAdı): Okunacak dosyanın adı verilen yeni bir FileReader oluşturur
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  );      }   }   


Çıkış

FileReaderÇıkış

3. Metin dosyasını okumak için tarayıcı sınıfı

Tarayıcı sınıfı kullanarak metin dosyalarını okumak ve ilkel türleri veya dizeleri ayrıştırmak için basit bir yol sağlar. düzenli ifadeler . Bir sınırlayıcı (varsayılan olarak boşluk) kullanarak girdiyi belirteçlere böler.

Örnek 1: Döngüler kullanarak

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


Çıkış

BufferReaderÇıkış

Örnek 2: Döngüler kullanılmadan

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


Çıkış

Döngü Olmadan Tüm Dosyayı OkumaÇıkış

4. Bir Listedeki dosyanın tamamını okuma

kullanarak bir metin dosyasının tamamını bir Listeye okuyabiliriz. Files.readAllLines() gelen yöntem java.nio.dosya paketi . Dosyadaki her satır listedeki bir öğe haline gelir.

Sözdizimi

public static List readAllLines(Path pathCharset cs) IOException'ı atar

Bu yöntem aşağıdakileri hat sonlandırıcı olarak tanır: 

  • u000Du000A -> Satırbaşı + Satır Besleme
  • u000A -> Satır Besleme
  • u000D -> Satırbaşı
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  ());      }   }   


Çıkış

ReadFileIntoListÇıkış

5. Bir metin dosyasını String olarak okuma

Java'da bir metin dosyasının tamamını tek bir String olarak okuyabiliriz. Bu, dosya içeriğini satır satır işlemek yerine bir bütün olarak işlemek istediğinizde kullanışlıdır.

Sözdizimi:

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

Örnek:

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

Çıkış

ReadTextAsStringÇıkış

Test Oluştur