构建文件输出流
有输入流,那么同样就有输出流。首先输出流同样有很多异常,全部使用try-catch来处理,看代码:
1 package com.hw.file0205;
2
3 import java.io.FileNotFoundException;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6
7 public class TestOutputStream {
8 public static void main(String[] args) {
9 FileOutputStream output = null;
10 try {
11 output = new FileOutputStream("F://骚操作//demo02_test.txt");
12 //即便文件不存在也没事,因为系统会为我们创建一个新文件。
13 output.write('E');
14 output.write('v');
15 output.write('a');
16 output.write('n');
17 //这样的操作是覆盖性质的,也就是说会覆盖掉之前文件里面的内容,不管有没有。
18 } catch (IOException e) {
19 // TODO Auto-generated catch block
20 e.printStackTrace();
21 }finally{
22 try {
23 if(output != null){
24 output.close();
25 }
26 } catch (IOException e) {
27 // TODO Auto-generated catch block
28 e.printStackTrace();
29 }
30 }
31
32 }
33 }

如果会覆盖的话,那这样会很不方便,我如果不想覆盖要怎么办?很简单,直接在后面加个true就可以了,因为它是默认为false的,加了个true的话就是“追加”了。
或者,也可以构造一个file对象,这种方法也是可以直接在后面加true变成“追加”方式的。来看代码:
1 package com.hw.file0205;
2
3 import java.io.File;
4 import java.io.FileNotFoundException;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7
8 public class TestOutputStream {
9 public static void main(String[] args) {
10 FileOutputStream output = null;
11 FileOutputStream file = null;
12 try {
13 output = new FileOutputStream("F://骚操作//demo02_test.txt",true);
14 //即便文件不存在也没事,因为系统会为我们创建一个新文件。
15 output.write('E');
16 output.write('v');
17 output.write('a');
18 output.write('n');
19 //这样的操作是覆盖性质的,也就是说会覆盖掉之前文件里面的内容,不管有没有。
20
21 file = new FileOutputStream(new File("F://骚操作//demo02_testagain.txt"),true);
22 file.write('E');
23 file.write('v');
24 file.write('a');
25 file.write('n');
26 file.write(' ');
27 file.write('i');
28 file.write('s');
29
30 } catch (IOException e) {
31 // TODO Auto-generated catch block
32 e.printStackTrace();
33 }finally{
34 try {
35 if(output != null){
36 output.close();
37 }
38 } catch (IOException e) {
39 // TODO Auto-generated catch block
40 e.printStackTrace();
41 }
42 }
43
44 }
45 }

到目前为止,上面这些方法都是字节写入,我们也可以利用数组:
1 package com.hw.file0205;
2
3 import java.io.File;
4 import java.io.FileNotFoundException;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7
8 public class TestOutputStream {
9 public static void main(String[] args) {
10 FileOutputStream output = null;
11
12 try {
13 output = new FileOutputStream("F://骚操作//demo02_test.txt");
14 String str = "你好,世界!Hello World!こんにちは、世界!";
15 output.write(str.getBytes());
16
17 } catch (IOException e) {
18 // TODO Auto-generated catch block
19 e.printStackTrace();
20 }finally{
21 try {
22 if(output != null){
23 output.close();
24 }
25 } catch (IOException e) {
26 // TODO Auto-generated catch block
27 e.printStackTrace();
28 }
29 }
30
31 }
32 }

调用getBytes方法,就可以把字符串变成数组了,然后再进行写入。

浙公网安备 33010602011771号