Java: запись файла
Вступление
В предыдущем уроке мы обсуждали, как читать файл с помощью потоков. Потоки могут быть двух типов Символьный поток или байтовый поток. Теперь давайте обсудим, как написать / создать файл с помощью Java-программы.
Написание файла с использованием FileOutputStream
FileOutputStream создает OutputStream, который вы можете использовать для записи байтов в файл. Давайте разберемся с популярным способом связать объект File с потоком Output:
- Вы можете передать имя файла конструктору класса FileOutputStream.
- Вы можете создать объект File, передав имя файла конструктору File. Затем вы можете передать объект File в конструктор класса FileOutputStream.
В нашей программе мы будем принимать ввод от пользователя с помощью клавиатуры и записывать его в файл. После запроса «Введите символы для записи в файл - нажмите Ctrl + z для завершения», блок try содержит оператор while. Оператор while продолжает читать до тех пор, пока пользователь не нажмет Ctrl + z. В случае ввода с клавиатуры –1 возвращается, когда вы нажимаете Ctrl + z.
Java-код:
пакет файловый пакет; импорт java.io. *; открытый класс FileWritingStreamWay { public static void main (String [] args) { InputStream istream; OutputStream ostream = null; int c; окончательный int EOF = -1; istream = System.in; File outFile = new File ("Data.txt"); System.out.println («Введите символы для записи в файл - нажмите Ctrl + z для завершения»); пытаться { ostream = new FileOutputStream (outFile); while ((c = istream.read ())! = EOF) ostream.write (с); } catch (IOException e) { System.out.println («Ошибка:» + e.getMessage ()); } в конце концов { пытаться { istream.close (); ostream.close (); } catch (IOException e) { System.out.println («Файл не закрыт»); } } } }
Выход:
Запись файла с использованием символьного потока (FileWriter)
Хотя классы потока байтов предоставляют достаточную функциональность для обработки любого типа операций ввода-вывода, они не могут работать напрямую с символами Юникода. Поскольку одной из основных целей Java является поддержка философии «пиши один раз, беги куда угодно», необходимо было включить прямую поддержку ввода-вывода для символов. Создание FileWriter не зависит от уже существующего файла. FileWriter создаст файл перед тем, как открыть его для вывода при создании объекта. В случае, если вы пытаетесь открыть файл только для чтения, будет выдано исключение IOException.
Java-код:
package filepackage;
import java.io.*;
public class FileWritingCharacterStream {
public static void main(String[] args) throws IOException{
InputStream istream;
int c;
final int EOF = -1;
istream = System.in;
FileWriter outFile = new FileWriter("Data.txt");
BufferedWriter bWriter = new BufferedWriter(outFile);
System.out.println("Type characters to write in File – Press Ctrl+z to end ");
while ((c = istream.read()) != EOF)
bWriter.write(c);
bWriter.close();
}
}
Java 7 предоставляет новый способ обработки исключений с помощью оператора try. Давайте напишем ту же программу с синтаксисом Java 7. Чтобы проверить вывод, проверьте Data.txt из корневого каталога проекта.
Java-код:
package filepackage;
import java.io.*;
public class FileWritingJava7Way {
public static void main(String[] args) {
String s =" This line will be written in File";
System.out.println("Writing to File Data.txt: " + s);
try (FileWriter outFile = new FileWriter("Data.txt");
BufferedWriter bWriter = new BufferedWriter(outFile)) {
bWriter.write(s);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Выход:
Резюме:
- Запись файла представляет собой пошаговый процесс, который начинается с создания файлового объекта (открытия файла), передачи файлового объекта в выходной поток, записи данных в поток и сброса данных в файловую систему и закрытия всех ресурсов.
- Мы обсудили различные способы написания файла, а также обработки исключения.
Редактор кода Java:
Предыдущая: Чтение файла
Далее: Обработка файла свойств Java
Новый контент: Composer: менеджер зависимостей для PHP , R программирования