У Java є кілька способів прочитати текстовий файл залежно від розміру даних і варіанту використання. The java.io і пакети java.nio.file надати кілька класів для ефективного читання файлів. Давайте обговоримо загальні підходи один за іншим.
1. Використання класу BufferedReader
BufferedReader клас читає текст із потоку символів і буферизує символи для ефективного читання. Його часто обертають навколо a FileReader або InputStreamReader для покращення продуктивності.
Синтаксис
JavaBufferedReader in = new BufferedReader(Reader int size);
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. Клас FileReader для читання текстового файлу
The Клас FileReader використовується для читання текстових файлів у Java. Він читає символи з файлу та підходить для читання звичайного тексту. Конструктори цього класу припускають, що стандартне кодування символів і розмір байтового буфера за замовчуванням є відповідними.
Конструктори, визначені в цьому класі, такі:
- FileReader (файл файлу): Створює новий FileReader із заданим файлом для читання
- FileReader(FileDescriptor fd): Створює новий FileReader із заданим FileDescriptor для читання
- FileReader (String fileName): Створює новий FileReader із назвою файлу для читання
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()); } }
Вихід
що таке регістр у sql
Вихідприклад 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. Читання всього файлу в списку
Ми можемо прочитати весь текстовий файл у список за допомогою Files.readAllLines() метод від пакет java.nio.file . Кожен рядок у файлі стає одним елементом у списку.
Синтаксис
public static List readAllLines(Path pathCharset cs)викидає IOException
Цей метод розпізнає наступне як термінатори рядка:
- u000Du000A -> Повернення каретки + Переведення рядка
- u000A -> Перехід рядка
- u000D -> Повернення каретки
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. Читання текстового файлу як рядка
Ми можемо читати весь текстовий файл як один рядок у Java. Це корисно, коли ви хочете обробити вміст файлу в цілому, а не рядок за рядком.
Синтаксис:
Мадхурі сказав
String data = new String(Files.readAllBytes(Paths.get(fileName)));
приклад:
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); } }
Вихід
Вихід Створіть вікторину