кодесурса

Java: запись файла

script1adsense2code
script1adsense3code

Вступление

В предыдущем уроке мы обсуждали, как читать файл с помощью потоков. Потоки могут быть двух типов Символьный поток или байтовый поток. Теперь давайте обсудим, как написать / создать файл с помощью 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code