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
JavaBufferedReader in = new BufferedReader(int boyutunda okuyucu);
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ış
Çı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
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ış
Çı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
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()); } }
Çıkış
java ters dize
ÇıkışÖrnek 2: Döngüler kullanılmadan
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()); } }
Çıkış
Çı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şı
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ış
Çı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:
tarih dizgeye dönüştürülür
Dize verileri = new String(Files.readAllBytes(Paths.get(fileName)));
Örnek:
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); } }
Çıkış
Çıkış Test Oluştur