# PrintWriter

## 概念

具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。

用法:

例子:

复制文件

```java
public class PrintWriterTest {
public static void main(String[] args) throws IOException {
//创建数据源对象,读取文件test.txt
FileReader is = new FileReader("test.txt");
//BufferedReader提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedReader br = new BufferedReader(is);

//创建目标路径对象
PrintWriter os = new PrintWriter(new FileWriter("d.txt"), true);

//复制文件
String line; //交换数的中介
while ((line = br.readLine()) != null) {
os.println(line);
}

//释放资源
is.close();
os.close();
}
}
```

例子2:往b.txt里面写入数据,然后复制到c.txt里面去

```java
public static void main(String[] args) throws IOException {
//创建打印流
PrintWriter print = new PrintWriter("b.txt");

//输出数据到b.txt
//PrintWriter类的println(String x)方法和writer(Stirng x)方法都表示把输入写到输出流中
print.write("hello");
print.write("world");
print.write("!");

//使用打印流特有方法输出println()
//与平台无关
print.println("hello");
print.println("world");
print.println("!");

//创建一个新的对象,此对对象具有自动刷新的功能,即在释放资源之前就写入数据
PrintWriter out = new PrintWriter(new FileWriter("c.txt"), true);

//输出数据
out.println("hello");
out.println("world");
out.println("!");

//释放资源
print.close();
out.close();

}
```

## FileWriter

FileWriter:是用来方便的将字符数据写入文件的类

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

**创:new 一个**

**写:利用 wirter() 方法**

**关:利用 close() 方法**

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

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

fw.close();
}
}
```

如果这个文件不存在,那么就会帮我们自动创建一个。

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

不想覆盖,创建对象的时候我们这样创建:

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

当我们调用 write() 方法的时候,我们写进去的,Windows 的记事本会翻译它,翻译成二进制,翻译成能够被计算机识别的语言。翻译总得有个标准,首先就会先找 ASCII 码表上的内容,如果没有呢?就会再去找万国码的 Unicode 表来进行翻译。我们在调用 write() 的时候,也可以写个 20013 试试,这是中国的 '中' 字。**

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

```java
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中
```

 

posted on 2021-06-24 10:11  kyrietomcode  阅读(97)  评论(0)    收藏  举报