<MyRusakov.ru />

Программирование на Python с Нуля до Гуру

Программирование на Python с Нуля до Гуру

Данный курс научит Вас программировать на языке Python, который крайне желательно знать любому, кто хоть иногда имеет дело с компьютерами. Курс состоит из 6 разделов, в которых Вы с нуля освоите этот язык и сможете создавать самые разные программы для самых разных задач любой сложности.

К курсу прилагается множество упражнений и все исходники из уроков.

Наконец, Вы получите ещё несколько бонусов: "Создание калькулятора на Python", "Создание игры на Python" и "Правильная работа со справочником".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как прочитать текстовый файл в Java?

Как прочитать текстовый файл в Java?

В Java все, кроме примитивных типов, есть объекты. Все эти объекты организованы в пакеты. Пакеты - это просто способ организации хранения Java-кода. Например, если у Вас есть следующая структура папок:

com
  example
    HelloWorld.java

, где com и example - это папка и подпапка, а HelloWorld.java - файл, то для доступа к этому файлу надо будет написать такой код:

import com.example.HelloWorld;

Как видите, название пакета в Java отражает структуру папок, в которой лежат файлы.

Для чтения файлов любых типов, будь то бинарных или текстовых в Java IO API - интерфейсе ввода/вывода Java предусмотрено два вида интерфейсов - потоки (streams) и читатели (readers). Потоки (streams) используются для чтения данных произвольного типа, т.е. бинарных данных, а читатели (readers) - для чтения символьных данных. А так как текстовый файл представляет собой набор символьных данных, то для чтения текстовых файлов в Java нужно использовать реализации интерфейса Reader.

Читать текстовые файлы в Java можно несколькими способами: с помощью классов FileReader, BufferedReader или Scanner. Каждый из указанных классов обладает определенными функциональными особенностями: так например, BufferedReader обеспечивает буферизацию данных для более быстрого чтения, а Scanner - предоставляет возможности для лексического разбора текста.

Чтение текста используя FileReader

Класс FileReader является базовой реализацией интерфейса Reader. В качестве параметров конструктор данного класса принимает путь к файлу, который необходимо прочитать. Также данный класс предоставляет ряд переопределенных методов для чтения одного символа, символов в массив и т.д.

// файл ReadFile.java
// импортируем необходимые классы
// без них компилятор выдаст ошибку
import java.io.FileReader;
import java.io.IOException;

// класс ReadFile находится в файле ReadFile
class ReadFile
{
  // статический метод для чтения файла 
  public static void  readTxtFile(String fileName) {
    
    // блок try/catch необходим, так как в результате
    // чтения файла могут возникнуть ошибки
    try {
    
      // создаем экземпляр класса FileReader
      FileReader tfr = new FileReader(fileName);
      // создаем в памяти буфер для чтения 8Кб символов за раз
      char[] buffer = new char[8096];
      
      int chars = tfr.read(buffer);
      
      // до тех пор пока есть символы в файле, читаем данные
      // и выводим в консоль
      while (chars != -1) {
        System.out.println(String.valueOf(buffer, 0, chars));
        chars = tfr.read(buffer);
      }
      
      // закрываем файл
      tfr.close();
    
    // отлавливаем исключение
    } catch (IOException e) {
      e.printStackTrace();
    }
    
  }
  
  public static void main(String[] args) {
    readTxtFile("C:/Documents/MyFile.txt");
  }
    
}

// Вывод файла MyFile.txt
Раз, два, три

Код хорошо комментирован, но я поясню еще пару моментов. Из листинга кода видно, что вместо чтения одного символа за раз я читаю сразу много символов в массив char. Такой способ более эффективен по сравнению с использованием метода read(), который читает по одному символу за раз, и соответственно, каждый раз обращается к файлу. Метод read(char[]) же, наоборот, при одном обращении читает сразу столько символов сколько помещается в массив переданный ему аргументом. Такой метод обеспечивает более эффективное чтение файла, так вместо одного символа читается сразу много символов.

В данном примере я использую буфер объемом в 8KB (8096 байт). Чтение продолжается до тех пор пока метод read(char[]) не вернет -1, что свидетельствует о конце файла.

Таким образом, чтение текстовых файлов в Java не представляет особой трудности и показанный здесь пример - это только один из множества способов чтения файлов в Java.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.