FileWriter的用法 wirte() 方法

FileWriter的用法就三个字:创,写,关

创:new 一个

写:利用 wirter() 方法

关:利用 close() 方法

下面就是创建一个文件的具体步骤:

import java.io.*;

public class FileWriter01 {
	public static void main(String[] args) throws IOException {
		FileWriter fw = new FileWriter("file01.txt");
		fw.write("Hello world");
		fw.close();
	}
}

如果这个文件不存在也可以这样做吗?

  • 是的,如果这个文件不存在,那么就会帮我们自动创建一个,创建完以后的纯文本文件放在哪里呢?放在这个 Java project 加瓦工程下面。

如果这个文件存在的话并且里面有内容会怎么样呢?

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

那我不想覆盖,想追加内容可以做到吗?

  • 当然可以,我们只需要在创建对象的时候,选择另外一个构造方法就可以追加而不是覆盖。创建对象的时候我们这样创建:
FileWriter fw = new FileWriter("file01.txt",true);

奇怪,我发现写到纯文本文件里头的数据都是在同一行的,能不能换行呢?

  • Of course!你只需要在调用 write() 方法的时候,写多两个字符 \r\n 就可以做到啦
  • 当然,我这里指的是在 Windows 系统下,
  • 在 macOS 系统下,早期使用的是 \r,现在使用的是 \n
  • 在 Linux    系统下,使用的是 \n
fw.write("何以解忧\r\n唯有 Java!");

 学了计算机这么久,我们应该都知道了,在计算机里头都是一个个的数字,二进制,是计算机用来彼此交流的语言,我们从上述学习的 FileWrite 来看,当我们调用 write() 方法的时候,我们写进去的,Windows 的记事本会翻译它,翻译成二进制,翻译成能够被计算机识别的语言。翻译总得有个标准,首先就会先找 ASCII 码表上的内容,如果没有呢?就会再去找万国码的 Unicode 表来进行翻译。我们在调用 write() 的时候,也可以写个 20013 试试,这是中国的 '中' 字。

为了方便需要我们需要记住在 ASCII 码表中常用的:48 - 0,65 - A,97 - a

package iterator;
import java.io.*;

public class FileWriter01 {
	public static void main(String[] args) throws IOException {
		FileWriter fw = new FileWriter("file01.txt");
		fw.write(48);
		fw.write(65);
		fw.write(97);
		fw.write(20013);
		fw.close();
	}
}
显示出来的结果:0Aa中

write() 有五种重载方式:

  1. write(int args):写入数字,利用 ASCII 码表 或者 Unicode 表转化
  2. write(String str):写入字符串
  3. write(String str,int offset,int count):写入字符串的一部分
  4. write(char[] array):写入字符数组
  5. write(char[] array,int offset,int count):写入字符数组的一部分
package iterator;
import java.io.*;

public class FileWriter01 {
	public static void main(String[] args) throws IOException {
		FileWriter fw = new FileWriter("file01.txt");
		//write() 方法有五种重载方式
		
		//1----
		fw.write(97);
		fw.write(98);
		fw.write(99);
		
		//2----
		fw.write("\r\nHello");
		fw.write("\r\nWorld");
		
		//3----从第 8 位开始,取 7 个字符
		fw.write("取次花丛懒回顾,半缘修道半圆君",8,7);
		
		
		char[] array = {'J','a','v','a'};
		
		//4----
		fw.write(array);
		
		//5----
		fw.write(array,1,2);
		

		fw.close();
	}
}

显示结果:

abc
Hello
World半缘修道半圆君Javaav

 

你可能感兴趣的:(FileWriter)