Пример Java FileWriter
Java FileWriter
- Класс Java FileWriter является частью пакета
java.io
. - FileWriter — это подкласс класса
java.io.OutputStreamWriter
. - FileWriter предназначен для записи потоков символов.
- FileWriter используется для записи в символьные файлы. Его методы
write()
позволяют записывать символы или строки в файл. - FileWriters обычно обертываются объектами Writer более высокого уровня, такими как BufferedWriter или
PrintWriter
, которые обеспечивают более высокую производительность и более гибкие методы записи данных более высокого уровня.
Конструкторы FileWriter
FileWriter(File file)
: создает объектFileWriter
, используя указанный объект File. Он генерируетIOException
, если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.FileWriter(File file, boolean append)
: создает объект FileWriter, используя указанный объект File. Если второй аргумент верен, то байты будут записаны в конец файла, а не в начало. Он генерирует исключение IOException, если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.FileWriter(FileDescriptor fd)
: создает объект FileWriter, связанный с указанным дескриптором файла.FileWriter(String fileName)
: создает объект FileWriter, используя указанное имя файла. Он генерируетIOException
, если указанный файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан или не может быть открыт по какой-либо другой причине.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