Поиск по сайту:

Пример Java FileWriter


Java FileWriter

  • Класс Java FileWriter является частью пакета java.io.
  • FileWriter — это подкласс класса java.io.OutputStreamWriter.
  • FileWriter предназначен для записи потоков символов.
  • FileWriter используется для записи в символьные файлы. Его методы write() позволяют записывать символы или строки в файл.
  • FileWriters обычно обертываются объектами Writer более высокого уровня, такими как BufferedWriter или PrintWriter, которые обеспечивают более высокую производительность и более гибкие методы записи данных более высокого уровня.

Конструкторы FileWriter

  1. FileWriter(File file): создает объект FileWriter, используя указанный объект File. Он генерирует IOException, если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.
  2. FileWriter(File file, boolean append): создает объект FileWriter, используя указанный объект File. Если второй аргумент верен, то байты будут записаны в конец файла, а не в начало. Он генерирует исключение IOException, если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.
  3. FileWriter(FileDescriptor fd): создает объект FileWriter, связанный с указанным дескриптором файла.
  4. FileWriter(String fileName): создает объект FileWriter, используя указанное имя файла. Он генерирует IOException, если указанный файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.
  5. FileWriter(String fileName, boolean append): создает объект FileWriter, используя указанное имя файла с логическим значением, указывающим, следует ли добавлять записанные данные. Если второй аргумент истинен, то данные будут записаны в конец файла, а не в начало. Он создает исключение IOException, если указанный файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.

Пример Java FileWriter

FileWriter наследует метод классов java.io.OutputStreamWriter и java.io.Writer. Давайте посмотрим на приведенные ниже методы с примерами.

написать (инт с)

Этот метод записывает один символ, указанный int c.

package com.journaldev.io.filewriter;

import java.io.FileWriter;
import java.io.IOException;

/**
 * Java write file using FileWriter write method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteIntExample {

	public static void main(String[] args) {
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter("D:/data/file.txt");
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(65);
			fileWriter.write(66);
			fileWriter.write(67);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if (fileWriter != null) {
					fileWriter.flush();
					fileWriter.close();					
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write method using try with resource
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteIntTryWithResource {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(65);
			fileWriter.write(66);
			fileWriter.write(67);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Примечание. В приведенной выше программе fileWriter.write(65) будет записывать A в файл, потому что 65 — это десятичное значение для символа A, поэтому целое число 65 будет преобразовано в символ A и то же самое для другого .

write(String str, int off, int len)

Этот метод записывает часть строки str из int off в int len.

  • str: строка для записи
  • off: смещение, с которого следует начинать чтение символов.
  • len: количество символов, которое нужно написать.

Если значение параметра len отрицательное, символы не записываются.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(String  s,  int  off,  int  len) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteStringExample {

	public static void main(String[] args) {
		String data = "This is FileWriter Example.";
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(data, 8, 10);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

write(char[] cbuf, int off, int len)

Этот метод записывает часть массива символов, заданного char[] cbuf, из int off в int len.

  • cbuf: массив символов
  • off: смещение, с которого следует начинать чтение символов.
  • len : количество символов для записи.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(char[] cbuf,  int  off,  int  len) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteCharArray {

	public static void main(String[] args) {
		char[] data = "This is FileWriter Example.".toCharArray();
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(data, 8, 10);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

написать (символ [] cbuf)

Этот метод записывает массив символов, указанный cbuf.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(char[] cbuf) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteCharArrayExample {

	public static void main(String[] args) {
		char[] data = "This is FileWriter Example.".toCharArray();
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write(data);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

написать (строка ул)

Этот метод записывает строковое значение в файл, указанный в str.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(String  str) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteString {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

добавить (символ c)

Этот метод добавляет указанный символ к этому средству записи, где c — это 16-битный символ для добавления.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter append(char c) method
 * 
 * @author pankaj
 *
 */
public class FileWriterAppendCharacter {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			fileWriter.append('C');
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

румянец()

Этот метод очищает поток. Когда вызывается метод flush(), он немедленно записывает данные в выходной файл.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file with FileWriter flush() method
 * 
 * @author pankaj
 *
 */
public class FileWriterFlushExample {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			//inherited method from java.io.OutputStreamWriter
			fileWriter.flush();
			
			fileWriter.write(" Tutorials");
			fileWriter.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

закрывать()

Этот метод очищает поток перед его закрытием. После закрытия потока вызов метода write() или flush() приведет к возникновению IOException. Закрытие ранее закрытого потока не имеет никакого эффекта.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file with FileWriter close() method
 * 
 * @author pankaj
 *
 */
public class FileWriterCloseExample {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			//inherited method from java.io.OutputStreamWriter
			fileWriter.close();;
			
			fileWriter.write(" Tutorials");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Выход:

java.io.IOException: Stream closed
	at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
	at sun.nio.cs.StreamEncoder.write(Unknown Source)
	at sun.nio.cs.StreamEncoder.write(Unknown Source)
	at java.io.OutputStreamWriter.write(Unknown Source)
	at java.io.Writer.write(Unknown Source)
	at com.journaldev.examples.FileWriterCloseExample.main(FileWriterCloseExample.java:20)

FileWriter против FileOutputStream

  • FileWriter предназначен для записи потоков символов, а FileOutputStream используется для записи потоков необработанных байтов.
  • FileWriter обрабатывает 16-битные символы, а FileOutputStream обрабатывает 8-битные байты.
  • FileWriter может обрабатывать строки Unicode, в то время как FileOutputStream записывает байты в файл и не принимает символы или строки, поэтому для приема строк его необходимо обернуть OutputStreamWriter.

Также проверьте файл записи java, чтобы узнать больше о том, как записать файл в java. Это все, что касается Java FileWriter, надеюсь, здесь ничего важного не пропущено.

Вы можете загрузить весь код примеров из нашего репозитория GitHub.

Ссылка: документ API