У Јави постоји више начина за читање текстуалне датотеке у зависности од величине ваших података и случаја употребе. Тхе јава.ио и јава.нио.филе пакети обезбеди неколико класа за ефикасно руковање читањем датотека. Хајде да разговарамо о заједничким приступима један по један.
1. Коришћење класе БуффередРеадер
БуффередРеадер класа чита текст из тока знакова и баферује знакове за ефикасно читање. Често је омотан око а ФилеРеадер или ИнпутСтреамРеадер за побољшање перформанси.
Синтакса
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); } }
Излаз
Излаз2. ФилеРеадер класа за читање текстуалне датотеке
Тхе ФилеРеадер цласс се користи за читање текстуалних датотека у Јави. Чита знакове из датотеке и погодан је за читање обичног текста. Конструктори ове класе претпостављају да су подразумевано кодирање знакова и подразумевана величина бафера бајтова одговарајући.
Конструктори дефинисани у овој класи су следећи:
- ФилеРеадер (датотека): Креира нови ФилеРеадер са датотеком за читање
- ФилеРеадер(ФилеДесцриптор фд): Креира нови ФилеРеадер који има ФилеДесцриптор за читање
- ФилеРеадер(Стринг филеНаме): Креира нови ФилеРеадер са именом датотеке за читање
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); } }
Излаз
Излаз3. Класа скенера за читање текстуалне датотеке
Класа скенера пружа једноставан начин за читање текстуалних датотека и рашчлањивање примитивних типова или стрингова помоћу регуларни изрази . Он дели унос на токене користећи граничник (подразумевано размак).
Пример 1: Са употребом петљи
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()); } }
Излаз
уланчавање унапред
ИзлазПример 2: Без употребе петљи
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()); } }
Излаз
Излаз4. Читање целе датотеке у листи
Можемо прочитати целу текстуалну датотеку у листу користећи Филес.реадАллЛинес() метода из јава.нио.филе пакет . Сваки ред у датотеци постаје један елемент на листи.
Синтакса
публиц статиц Лист реадАллЛинес(Патх патхЦхарсет цс) баца ИОЕкцептион
Овај метод препознаје следеће као терминаторе линије:
- у000Ду000А -> Царриаге Ретурн + Лине Феед
- у000А -> Лине Феед
- у000Д -> Царриаге Ретурн
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()); } }
Излаз
Излаз5. Прочитајте текстуалну датотеку као стринг
Можемо прочитати целу текстуалну датотеку као један стринг у Јави. Ово је корисно када желите да обрадите садржај датотеке у целини, а не ред по ред.
Синтакса:
јава датум у стринг
Стринг дата = нев Стринг(Филес.реадАллБитес(Патхс.гет(филеНаме)));
Пример:
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); } }
Излаз
Излаз Креирај квиз