<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

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

Подписавшись по 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):

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