FileWriter (Java SE 23 & JDK 23)
Description: declaration: module: java.base, package: java.io, class: FileWriter
Keywords: java.io.FileWriter class

# Class FileWriter

java.lang.Object
java.io.Writer
java.io.OutputStreamWriter
java.io.FileWriter

All Implemented Interfaces:
  `Closeable`, `Flushable`, `Appendable`, `AutoCloseable`

public class FileWriter extends OutputStreamWriter
Writes text to character files using a default buffer size. Encoding from characters to bytes uses either a specified charset or the default charset.

Whether or not a file is available or may be created depends upon the underlying platform. Some platforms, in particular, allow a file to be opened for writing by only one `FileWriter` (or other file-writing object) at a time. In such situations the constructors in this class will fail if the file involved is already open.

The `FileWriter` is meant for writing streams of characters. For writing streams of raw bytes, consider using a `FileOutputStream`.

Since:
  1.1
See Also:
  - `OutputStreamWriter`
  - `FileOutputStream`
  - `Charset.defaultCharset()`

- ## Field Summary

  ### Fields declared in class java.io.Writer

  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileWriter(File file)`
  Constructs a `FileWriter` given the `File` to write, using the default charset
  `FileWriter(FileDescriptor fd)`
  Constructs a `FileWriter` given a file descriptor, using the default charset.
  `FileWriter(File file, boolean append)`
  Constructs a `FileWriter` given the `File` to write and a boolean indicating whether to append the data written, using the default charset.
  `FileWriter(File file, Charset charset)`
  Constructs a `FileWriter` given the `File` to write and charset.
  `FileWriter(File file, Charset charset, boolean append)`
  Constructs a `FileWriter` given the `File` to write, charset and a boolean indicating whether to append the data written.
  `FileWriter(String fileName)`
  Constructs a `FileWriter` given a file name, using the default charset
  `FileWriter(String fileName, boolean append)`
  Constructs a `FileWriter` given a file name and a boolean indicating whether to append the data written, using the default charset.
  `FileWriter(String fileName, Charset charset)`
  Constructs a `FileWriter` given a file name and charset.
  `FileWriter(String fileName, Charset charset, boolean append)`
  Constructs a `FileWriter` given a file name, charset and a boolean indicating whether to append the data written.

- ## Method Summary

  ### Methods declared in class java.io.OutputStreamWriter

  `close, flush, getEncoding, write, write, write`

  ### Methods declared in class java.io.Writer

  `append, append, append, nullWriter, write, write`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### FileWriter

    public FileWriter(String fileName) throws IOException
    Constructs a `FileWriter` given a file name, using the default charset
    Parameters:
      `fileName` - String The system-dependent filename.
    Throws:
      `IOException` - if the named file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    See Also:
      - `Charset.defaultCharset()`

  - ### FileWriter

    public FileWriter(String fileName, boolean append) throws IOException
    Constructs a `FileWriter` given a file name and a boolean indicating whether to append the data written, using the default charset.
    Parameters:
      `fileName` - String The system-dependent filename.
      `append` - boolean if `true`, then data will be written to the end of the file rather than the beginning.
    Throws:
      `IOException` - if the named file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    See Also:
      - `Charset.defaultCharset()`

  - ### FileWriter

    public FileWriter(File file) throws IOException
    Constructs a `FileWriter` given the `File` to write, using the default charset
    Parameters:
      `file` - the `File` to write.
    Throws:
      `IOException` - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    See Also:
      - `Charset.defaultCharset()`

  - ### FileWriter

    public FileWriter(File file, boolean append) throws IOException
    Constructs a `FileWriter` given the `File` to write and a boolean indicating whether to append the data written, using the default charset.
    Parameters:
      `file` - the `File` to write
      `append` - if `true`, then bytes will be written to the end of the file rather than the beginning
    Throws:
      `IOException` - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
      1.4
    See Also:
      - `Charset.defaultCharset()`

  - ### FileWriter

    public FileWriter(FileDescriptor fd)
    Constructs a `FileWriter` given a file descriptor, using the default charset.
    Parameters:
      `fd` - the `FileDescriptor` to write.
    See Also:
      - `Charset.defaultCharset()`

  - ### FileWriter

    public FileWriter(String fileName, Charset charset) throws IOException
    Constructs a `FileWriter` given a file name and charset.
    Parameters:
      `fileName` - the name of the file to write
      `charset` - the charset
    Throws:
      `IOException` - if the named file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
      11

  - ### FileWriter

    public FileWriter(String fileName, Charset charset, boolean append) throws IOException
    Constructs a `FileWriter` given a file name, charset and a boolean indicating whether to append the data written.
    Parameters:
      `fileName` - the name of the file to write
      `charset` - the charset
      `append` - a boolean. If `true`, the writer will write the data to the end of the file rather than the beginning.
    Throws:
      `IOException` - if the named file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
      11

  - ### FileWriter

    public FileWriter(File file, Charset charset) throws IOException
    Constructs a `FileWriter` given the `File` to write and charset.
    Parameters:
      `file` - the `File` to write
      `charset` - the charset
    Throws:
      `IOException` - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
      11

  - ### FileWriter

    public FileWriter(File file, Charset charset, boolean append) throws IOException
    Constructs a `FileWriter` given the `File` to write, charset and a boolean indicating whether to append the data written.
    Parameters:
      `file` - the `File` to write
      `charset` - the charset
      `append` - a boolean. If `true`, the writer will write the data to the end of the file rather than the beginning.
    Throws:
      `IOException` - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
      11