【Java用法】FileWriter的用法 wirte() 方法以及几种重载方法的使用详解

简介: 【Java用法】FileWriter的用法 wirte() 方法以及几种重载方法的使用详解

一、用法介绍

FileWriter的用法很简单,可以总结为三个词:创建(new)、写出(write)、关闭(close)

创建(new):就是我们平时常用的 new 一个;

写出(write):利用 重载方法 write() 中的某一个写出内容;

关闭(close):关闭流;

以下是一个具体的举例说明:

public class TestFileWriter {
    public static void main(String[] args) throws IOException {
        // 方式一,创建的文件会在项目里
        FileWriter fileWriter1 = new FileWriter("file01.txt");
        fileWriter1.write("我很骄傲我是中国人!");
        fileWriter1.write("此生无悔入华夏!");
        fileWriter1.write("\r\n人生自古谁无死,留取丹心照汗青!");
        fileWriter1.close();
        // 方式二,创建的文件会在指定的目录里(注意,这里一定要有写入的权限,否则会创建失败!)
        FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt");
        fileWriter2.write("我很骄傲我是中国人!");
        fileWriter2.close();
    }
}

输出结果:

二、疑问解答

以下是汇总的几个常见问题:

2.1、如果这个文件不存在会怎么样?

   如果这个文件不存在,那么就会帮我们自动创建一个,创建完以后的纯文本文件放在哪里呢?如果不指定目录就会放在这个 Java project 工程下面,与src目录和target目录同级。

   

   如果指定目录就会把这个文件放到指定的目录下:如上述方式二;FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt");

2.2、如果这个文件存在的话会怎么样?

   如果这个纯文本文件已经存在,并且里面有内容,此时我们再添加内容,就会覆盖掉这个纯文本文件已有的内容。

2.3、如果不想覆盖之前的内容,想要追加内容怎么做?

   其实这个也很简单,只需要在创建对象的时候,选择另外一个构造方法(重载形式的构造方法)就可以了。

FileWriter fw = new FileWriter("file01.txt", true);

或者:

FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt", true);

2.4、添加数据,如何实现换行呢?

往纯文本文件里头添加的数据都是在同一行的,那么如何实现换行呢?

注意区分操作系统:

   Windows 操作系统下:\r\n
   
   Linux 操作系统下:\n
   
   Mac 操作系统下:早期使用的是 \r,现在使用的是 \n

   比如:fileWriter1.write("人生自古谁无死,\r\n留取丹心照汗青!");

三、用法拓展

3.1、write 方法重载

write() 有五种重载方式:

   write(int c):写入数字,利用 ASCII 码表 或者 Unicode 表转化
   
   write(String str):写入字符串
   
   write(char[] cbuf):写入字符数组
   
   write(String str, int off, int len):写入字符串的一部分
   
   write(char[] cbuf,int off,int len):写入字符数组的一部分

ASCII 码表中常用的:48 - 0,65 - A,97 - a

3.2、重载示例

具体举例说明:  

 public static void testOverload() throws IOException {
        FileWriter fileWriter = new FileWriter("file03.txt");
        // 重载方法一:写入数字,利用 ASCII 码表 或者 Unicode 表转化
        // ASCII 码表中常用的:48 - 0,65 - A,97 - a
        fileWriter.write(65);
        fileWriter.write("\r\n");
        // 定义字符串
        String str = "我很骄傲我是中国人!";
        // 重载方法二:写入字符串
        fileWriter.write(str);
        fileWriter.write("\r\n");
        // 重载方法三:写入字符数组
        char[] javaArray = {'J','a','v','a'};
        fileWriter.write(javaArray);
        fileWriter.write("\r\n");
        // 重载方法四:写入字符串的一部分(结果:我是中国人)
        fileWriter.write(str, 4, 5);
        fileWriter.write("\r\n");
        // 重载方法五:写入字符数组的一部分(结果:v)
        fileWriter.write(javaArray, 2, 1);
        fileWriter.close();
    }

输出结果为:

 

完结!


相关文章
|
19天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
33 1
|
1月前
|
前端开发 Java
java中的Queue队列的用法
java中的Queue队列的用法
19 1
|
1月前
|
XML Java 编译器
java aspectjrt AOP 用法
java aspectjrt AOP 用法
21 0
|
4天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
8 0
|
9天前
|
JSON Java 数据格式
Java QueryWrapper基本用法
Java QueryWrapper基本用法
13 2
|
1月前
|
安全 Java 开发者
Java 8 `Optional` 类的用法和优势
【2月更文挑战第15天】
13 0
|
1月前
|
自然语言处理 Java 编译器
Java:方法的重载
Java:方法的重载
|
2月前
|
Java
|
2月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
46 0