Рубрики
Без рубрики

Программа чтения файлов Java

Программа чтения файлов Java, Программа чтения файлов на Java, Класс программы чтения файлов Java, Программа чтения файлов на Java, Файл чтения Java, Конструкторы программы чтения файлов Java, поток чтения символов в программе чтения файлов Java, метод пропуска программы чтения файлов Java, Учебник по Java для чтения файлов с примером кода.

Автор оригинала: Pankaj Kumar.

Программа чтения файлов Java

  • Класс Java FileReader является частью java.io посылка.
  • Файловый редактор является подклассом класса InputStreamReader .
  • Программа чтения файлов Java рекомендуется для чтения текстовых данных из файла по сравнению с FileInputStream .
  • Программа чтения файлов предназначена для чтения потоков символов. Так что это хороший выбор для чтения строковых данных на основе.
  • Конструкторы этого класса предполагают, что кодировка символов по умолчанию и размер байтового буфера по умолчанию являются подходящими.
  • Считыватели файлов обычно оборачиваются объектами более высокого уровня , такими как BufferedReader , которые повышают производительность и предоставляют более удобные способы работы с данными.

Иерархия классов читателя файлов

Конструкторы для чтения файлов

Давайте быстро взглянем на конструкторы читателя файлов .

  1. Программа чтения файлов(файловый файл) : Создает новый объект чтения файлов, используя указанный объект файла для чтения. Это вызовет исключение FileNotFoundException , если файл не существует, является каталогом, а не обычным файлом, или по какой-либо другой причине не может быть открыт для чтения.
  2. FileReader(FileDescriptor fd) : Создает новый объект FileReader, используя указанный Файловый дескриптор объект для чтения.
  3. Средство чтения файлов(строковое имя файла) : Создает новый объект средства чтения файлов, используя указанное имя файла для чтения. Он вызовет исключение FileNotFoundException , если именованный файл не существует, является каталогом, а не обычным файлом, или по какой-либо другой причине не может быть открыт для чтения.

Пример программы чтения файлов Java

Давайте рассмотрим приведенные ниже методы и примеры программ класса FileReader.

читать()

Этот метод считывает один символ. Этот метод будет блокироваться до тех пор, пока не будет доступен символ, не произойдет ошибка ввода-вывода или не будет достигнут конец потока. Он возвращает символ, считываемый как целое число в диапазоне от 0 до 65535 (0x00-0xffff), или -1, если достигнут конец потока.

Давайте рассмотрим приведенный ниже пример программы.

package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;

/**
 * Java Read file FileReader
 * 
 * @author pankaj
 *
 */
public class FileReaderReadExample {

	public static void main(String[] args) {
		File file = null;
		FileReader reader = null;
		try {
			file = new File("D:/data/file.txt");
			reader = new FileReader(file);
			int i;
			while ((i=reader.read())!= -1) {
				System.out.print((char)i);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if (reader != null) {
					reader.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}
}

Выходные данные вышеупомянутой программы приведены ниже:

Hello World.
This is a FileReader Example.

FileReader реализует Автоклавируемый | интерфейс , следовательно, мы можем попробовать использовать ресурс при использовании класса FileReader. Давайте рассмотрим приведенный ниже пример программы.

package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;

/**
 * Java Read file FileReader using try with resource
 * 
 * @author pankaj
 *
 */
public class FileReaderReadUsingTryWithResource {

	public static void main(String[] args) {
		File file = new File("D:/data/file.txt");
		try (FileReader reader = new FileReader(file);){
			int i;
			while ((i=reader.read())!= -1) {
				System.out.print((char)i);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Выходные данные вышеупомянутой программы приведены ниже:

Hello World.
This is a FileReader Example.

читать(char[] cbuf)

Этот метод считывает символы в массив. Этот метод будет блокироваться до тех пор, пока не будет доступен какой-либо ввод, не произойдет ошибка ввода-вывода или не будет достигнут конец потока. Он возвращает количество прочитанных символов или -1, если достигнут конец потока. Давайте рассмотрим приведенный ниже пример программы.

package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;

/**
 * Java Read file FileReader using read(char[] cbuf) method
 * 
 * @author pankaj
 *
 */
public class ReadFileUsingFileReader {

	public static void main(String[] args) {
		File file = new File("D:/data/file.txt");
		try (FileReader reader = new FileReader(file);){
			char[] cs = new char[100];
			reader.read(cs);
			for (char c : cs) {
				System.out.print(c);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Выходные данные вышеупомянутой программы приведены ниже:

Hello World.
This is a FileReader Example.

читать(char[] cbuf, int off, int len)

Этот метод считывает символы в часть массива. Этот метод будет блокироваться до тех пор, пока не будет доступен какой-либо ввод, не произойдет ошибка ввода-вывода или не будет достигнут конец потока. Он возвращает количество прочитанных символов или -1, если достигнут конец потока.

Параметры :

  • cbuf: буфер назначения
  • выкл.: Смещение, с которого начинается хранение символов
  • len: Максимальное количество символов для чтения
package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;

/**
 * Java Read file FileReader using read(char[] cbuf, int off, int len) method
 * 
 * @author pankaj
 *
 */
public class ReadFileUsingFileReaderExample {

	public static void main(String[] args) {
		File file = new File("D:/data/file.txt");
		try (FileReader reader = new FileReader(file);){
			char[] cs = new char[100];
			reader.read(cs, 0, 11);
			for (char c : cs) {
				System.out.print(c);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

//Output: Hello World

чтение(цель CharBuffer)

Этот метод считывает символы в указанный буфер символов. Буфер используется как хранилище символов как есть: единственные внесенные изменения являются результатами операции put. Перелистывание или перемотка буфера не производится. Он возвращает количество символов, добавленных в буфер, или -1, если этот источник символов находится в его конце.

package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;
import java.nio.CharBuffer;

/**
 * Java Read file FileReader using CharBuffer
 * 
 * @author pankaj
 *
 */
public class ReadFileUsingFileReaderCharBuffer {

	public static void main(String[] args) {
		File file = new File("D:/data/file.txt");
		try (FileReader reader = new FileReader(file);){
			//create char buffer with the capacity of 50
			CharBuffer cs = CharBuffer.allocate(50);
			//read characters into char buffer
			reader.read(cs);
			//flip char buffer
			cs.flip();
			System.out.println(cs.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

пропустить(длинный n)

Этот метод пропускает количество символов и возвращает количество пропущенных символов.

package com.journaldev.examples;

import java.io.File;
import java.io.FileReader;

/**
 * Java Read file FileReader using skip method
 * 
 * @author pankaj
 *
 */
public class FileReaderSkipExample {

	public static void main(String[] args) {
		File file = null;
		FileReader reader = null;
		try {
			file = new File("D:/data/file.txt");
			reader = new FileReader(file);
			//skip first 6 characters
			reader.skip(6);
			int i;
			while ((i=reader.read())!= -1) {
				System.out.print((char)i);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if (reader != null) {
					reader.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}
}

Выход:

World.
This is a FileReader Example.

Также проверьте текстовый файл чтения java для получения дополнительной информации о том, как читать текстовый файл на java.

Файловый редактор Java против потока ввода файлов

  1. FileReader используется для чтения потоков символов, в то время как FileInputStream используется для чтения потоков байтов, таких как необработанные данные изображения.
  2. Программа чтения файлов хороша для чтения текстовых файлов, таких как файл исходного кода java, в то время как FileInputStream хорош для чтения двоичных файлов, таких как файлы .class.

Это все для программы чтения файлов Java, я надеюсь, что здесь не было пропущено ничего важного.

Ссылка: API Doc