Java 文件编辑器
- Java FileWriter 类是「java.io」包的一部分
- FileWriter 是「java.io.OutputStreamWriter」类的一类子类
- FileWriter 是用来写字符的流
- FileWriter 用于写字符文件。它的 `write'() 方法允许你写字符(或字符串)或字符串到一个文件
- FileWriters 通常由更高级别的 Writer 对象包装,如 BufferedWriter或
PrintWriter
,提供更好的性能和更高级别的更灵活的方法来写数据( _
檔案設計師
FileWriter(文件)':使用指定的[文件](/community/tutors/java-file-class-java-io-file)对象创建
FileWriter'对象。 如果文件存在,但是一个目录而不是一个正则文件,或者不存在,但无法创建,或者由于任何其他原因无法打开,则它会扔出一个IOException
。 使用指定的File对象创建FileWriter对象。 如果第二个参数是真实的,那么字节会被写到文件的结尾而不是开始. 它扔出 **IOException ** 如果文件存在但是一个目录而不是一个正则文件,或者不存在但无法创建,或者由于任何其他原因无法打开.- `FileWriter (FileDescriptionor fd)' : 创建与指定文件描述符相关的文件Writer对象.
FileWriter (String file)' : 使用指定文件创建 FileWriter 对象Name 如果所命名的文件存在但是一个目录而不是一个正则文件,或者不存在但无法创建,或者由于任何其他原因无法打开,则它会扔出一个"IOException". (- )5。
FileWriter( 字符串文件Name,布尔附件)' : 使用指定文件创建 FileWriter 对象Name 有布尔表示是否** 添加** 写入的数据。 如果第二个参数是真实的,那么数据会被写到文件的结尾而不是开始. 如果所命名的文件存在但是一个目录而不是一个正则文件,或者不存在但无法创建,或者由于任何其他原因无法打开,则它会扔出一个 IOExcuseion. (_) (英语)
Java 文件编辑器 示例
FileWriter 继承了java.io.OutputStreamWriter
和java.io.Writer
类的方法,让我们以示例来看下面的方法。
写作(C)
此方法编写一个单个字符,指定为 int c。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4import java.io.IOException;
5
6/**
7 * Java write file using FileWriter write method
8 *
9 * @author pankaj
10 *
11 */
12public class FileWriterWriteIntExample {
13
14 public static void main(String[] args) {
15 FileWriter fileWriter = null;
16 try {
17 fileWriter = new FileWriter("D:/data/file.txt");
18 //inherited method from java.io.OutputStreamWriter
19 fileWriter.write(65);
20 fileWriter.write(66);
21 fileWriter.write(67);
22 } catch (Exception e) {
23 e.printStackTrace();
24 }finally {
25 try {
26 if (fileWriter != null) {
27 fileWriter.flush();
28 fileWriter.close();
29 }
30 } catch (IOException e) {
31 e.printStackTrace();
32 }
33 }
34 }
35}
FileWriter implements
AutoCloseable
interface, hence we can use try with resources while using FileWriter class.
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter write method using try with resource
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterWriteIntTryWithResource {
12
13 public static void main(String[] args) {
14 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
15 //inherited method from java.io.OutputStreamWriter
16 fileWriter.write(65);
17 fileWriter.write(66);
18 fileWriter.write(67);
19 } catch (Exception e) {
20 e.printStackTrace();
21 }
22 }
23}
** 注意**:在上面的程序中,fileWriter.write(65) 会将 A 写入文件中,因为 65 是字符 A 的十进制值,因此整数 65 将转换为字符 A 和相同的字符。
写(String str, int off, int len)
此方法写出一部分字符串str
从intoff
到intlen
。
- str: 要写字符串
- off: 要开始读字符串
- len: 要写字符串的数量
如果 len 参数的值是负的,则不会写任何字符。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter write(String s, int off, int len) method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterWriteStringExample {
12
13 public static void main(String[] args) {
14 String data = "This is FileWriter Example.";
15 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
16 //inherited method from java.io.OutputStreamWriter
17 fileWriter.write(data, 8, 10);
18 } catch (Exception e) {
19 e.printStackTrace();
20 }
21 }
22}
写(char[] cbuf, int off, int len)
该方法写入了由char[] cbuf
指定的字符组的一部分,从intoff
到intlen
。
- cbuf: 字符数组
- 关闭: 取代以开始读字符
- len : 写字符数
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter write(char[] cbuf, int off, int len) method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterWriteCharArray {
12
13 public static void main(String[] args) {
14 char[] data = "This is FileWriter Example.".toCharArray();
15 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
16 //inherited method from java.io.OutputStreamWriter
17 fileWriter.write(data, 8, 10);
18 } catch (Exception e) {
19 e.printStackTrace();
20 }
21 }
22}
此方法写入 cbuf 指定的字符数组。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter write(char[] cbuf) method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterWriteCharArrayExample {
12
13 public static void main(String[] args) {
14 char[] data = "This is FileWriter Example.".toCharArray();
15 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
16 //inherited method from java.io.Writer
17 fileWriter.write(data);
18 } catch (Exception e) {
19 e.printStackTrace();
20 }
21 }
22}
字符串(String)
此方法将一个字符串值写入由 str
指定的文件中。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter write(String str) method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterWriteString {
12
13 public static void main(String[] args) {
14 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
15 //inherited method from java.io.Writer
16 fileWriter.write("JournalDev");
17 } catch (Exception e) {
18 e.printStackTrace();
19 }
20 }
21}
附件(C)
此方法将指定的字符附加到该编写器中,其中c
是要附加的 16 位字符。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file using FileWriter append(char c) method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterAppendCharacter {
12
13 public static void main(String[] args) {
14 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
15 //inherited method from java.io.Writer
16 fileWriter.write("JournalDev");
17 fileWriter.append('C');
18 } catch (Exception e) {
19 e.printStackTrace();
20 }
21 }
22}
( )
当被称为flush()
方法时,它会立即将数据写入输出文件中。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file with FileWriter flush() method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterFlushExample {
12
13 public static void main(String[] args) {
14 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
15 //inherited method from java.io.Writer
16 fileWriter.write("JournalDev");
17 //inherited method from java.io.OutputStreamWriter
18 fileWriter.flush();
19
20 fileWriter.write(" Tutorials");
21 fileWriter.flush();
22 } catch (Exception e) {
23 e.printStackTrace();
24 }
25 }
26}
接近( )
此方法在关闭之前会清除流量。一旦流量已关闭,请求write()
或flush()
方法会导致IOException
被扔掉。
1package com.journaldev.io.filewriter;
2
3import java.io.FileWriter;
4
5/**
6 * Java write file with FileWriter close() method
7 *
8 * @author pankaj
9 *
10 */
11public class FileWriterCloseExample {
12
13 public static void main(String[] args) {
14 try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
15 //inherited method from java.io.Writer
16 fileWriter.write("JournalDev");
17 //inherited method from java.io.OutputStreamWriter
18 fileWriter.close();;
19
20 fileWriter.write(" Tutorials");
21 } catch (Exception e) {
22 e.printStackTrace();
23 }
24 }
25}
输出:
1java.io.IOException: Stream closed
2 at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
3 at sun.nio.cs.StreamEncoder.write(Unknown Source)
4 at sun.nio.cs.StreamEncoder.write(Unknown Source)
5 at java.io.OutputStreamWriter.write(Unknown Source)
6 at java.io.Writer.write(Unknown Source)
7 at com.journaldev.examples.FileWriterCloseExample.main(FileWriterCloseExample.java:20)
使用 FileWriter 和 FileOutputStream
- FileWriter 用于编写字符流,而 FileOutputStream用于编写原始字节流
- FileWriter 处理 16 位字符,而 FileOutputStream 处理 8 位字节
- FileWriter 可以处理 Unicode 字符串,而 FileOutputStream 会编写字符串到文件中,并且不接受字符或字符串,因此它需要被
OutputStreamWriter
包装以接受字符串
也检查 [java 写文件]( / 社区 / 教程 / java 写到文件) 有关如何写在 java 中的文件的更多信息. 这就是 Java FileWriter 的全部,我希望这里没有什么重要的错过。
您可以从我们的 GitHub 存储库下载所有示例代码。
引用: API Doc