Java: ввод и вывод файлов
Вступление
Когда элементы данных хранятся в компьютерной системе, они могут храниться в течение различных периодов времени - временно или постоянно.
- Временное хранилище обычно называется компьютерной памятью или оперативной памятью (RAM). Когда вы пишете программу на Java, которая хранит значение в переменной, вы используете временное хранилище; сохраненное вами значение теряется, когда программа заканчивается или компьютер теряет питание. Этот тип хранения является летучим.
- Постоянное хранилище, с другой стороны, не теряется, когда компьютер теряет питание; это нелетучий. Когда вы пишете программу на Java и сохраняете ее на диск, вы используете постоянное хранилище.
Файлы существуют на постоянных запоминающих устройствах, таких как жесткие диски, Zip-диски, USB-накопители, катушки или кассеты с магнитной лентой и компакт-диски. Компьютерные файлы представляют собой электронный эквивалент бумажных файлов, часто хранящихся в картотечных шкафах в офисах.
Когда вы работаете с сохраненными файлами в приложении, вы обычно выполняете все или некоторые из следующих задач:
- Определение наличия и наличия файла
- Открытие файла
- Чтение данных из файла
- Запись информации в файл
- Закрытие файла
ИСПОЛЬЗОВАНИЕ ФАЙЛА КЛАССА
Вы можете использовать Java-класс File, чтобы собрать информацию о файле, такую как его размер, дата его последнего изменения и наличие файла. Вы должны включить следующую инструкцию для использования класса File:
импорт java.io.File;
Пакет java.io содержит все классы, которые вы используете при обработке файлов, поэтому обычно проще всего импортировать весь пакет, используя символ подстановки *, как показано ниже:
импорт java.io. *;
Класс File является подклассом класса Object. Вы можете создать объект File, используя конструктор, который включает имя файла в качестве аргумента, например, вы делаете следующее утверждение, когда Data.txt является файлом в корневой папке проекта:
File fileName = new File ("Data.txt");
Ниже приведен список некоторых важных методов класса File с целью и сигнатурой метода.
Название метода / Подпись | Цель |
---|---|
логическое canRead () | Возвращает true, если файл доступен для чтения |
логическое canWrite () | Возвращает true, если файл доступен для записи |
логическое существует () | Возвращает истину, если файл существует |
Строка getName () | Возвращает имя файла |
Строка getPath () | Возвращает путь к файлу |
Строка getParent () | Возвращает имя папки, в которой находится файл |
Большая длина() | Возвращает размер файла |
long lastModified () | Возвращает время последнего изменения файла; это время зависит от системы и должно использоваться только для сравнения с временем других файлов, а не как абсолютное время |
логический isDirectory () | Когда вы создаете объект File, а он является каталогом, метод isDirectory () возвращает true. |
Давайте разберемся с реализацией этого метода с помощью Java-программы. В методе main () объявляется объект File с именем myFile. Строка, передаваемая конструктору, это «SomeData.txt», которая является системным именем сохраненного файла. Другими словами, хотя SomeData.txt может быть именем хранимого файла, когда операционная система ссылается на него, файл известен как myFile в приложении. Нам нужно создать файл Data.txt в корневой директории проекта, иначе мы получим сообщение «Файл не существует».
Java-код: перейти к редактору
import java.io.File;
public class FileClassMethods {
public static void main(String[] args) {
File myFile = new File("Data.txt");
if (myFile.exists()) {
System.out.println(myFile.getName() + " exists");
System.out.println("The file is " + myFile.length() + " bytes long");
if (myFile.canRead())
System.out.println(" ok to read");
else
System.out.println(" not ok to read");
if (myFile.canWrite())
System.out.println(" ok to write");
else
System.out.println(" not ok to write");
System.out.println("path: " +myFile.getAbsolutePath());
System.out.println("File Name: "+ myFile.getName());
System.out.println("File Size: "+ myFile.length() + " bytes");
} else
System.out.println("File does not exist");
}
}
Выход:
Если файл недоступен в корневой папке проекта.
когда файл присутствует:
Обработка исключений
При работе с файлами и потоками могут возникнуть несколько исключений в пакете java.io.
- Исключение FileNotFound возникает при попытке создания потока или файлового объекта с использованием файла, который не может быть найден.
- EOFException указывает, что конец файла был неожиданно достигнут, поскольку данные считывались из файла через входной поток.
Эти исключения являются подклассами IOException. Один из способов справиться со всеми из них - заключить все операторы ввода и вывода в блок try-catch, который перехватывает объекты IOException. Вызовите методы toString () или getMessage () исключения в блоке catch, чтобы узнать больше о проблеме
Резюме
- Все реальные приложения генерируют много данных, которые необходимо будет использовать на более позднем этапе. Это требование достигается с помощью файлового хранилища на постоянном устройстве хранения, таком как дисковод, CD-ROM, флеш-накопитель и т. Д.
- Java предоставляет библиотеку классов для доступа к этой постоянно хранимой информации в файлах, называемых FileIO или java.io. * Пакет.
- Класс java.io.File предоставляет некоторые из очень полезных служебных методов, таких как проверка прав доступа, проверка размера файла, проверка абсолютного пути и т. д.
Редактор кода Java:
Предыдущая: Класс буфера строк и класс компоновщика строк
Далее: Чтение файла
Новый контент: Composer: менеджер зависимостей для PHP , R программирования