java基础45 IO流技术(输出流/字节流)

1、输出字节流

---------| OutputStream
-------------| FileOutputStream 向文件输出数据的输出字节流

2、IO流分类

按照数据的流向划分:
         输入流:把硬盘(或内存)中的数据程序中。
         输出流:把程序中的数据硬盘(或内存)中。
按照处理的单位划分:
         字节流:字节流读取都是文件中的二进制数据,读取到的二进制数据不会经过任何的处理.
         字符流:字符流读取的数据是以字符为单位的;字符流也是读取的是二进制数据,不过会把这些二进制数据转换为我们认识的字符.(字符流=字节流+解码)

3、FileOutPutStream步骤

    1.找目标文件
    2.建立数据输出通道
    3.把数据转换为字节数组写出
    4.关闭资源

4、FileOUtPutStream注意的细节

    1.使用FileOutPutStream的时候,如果目标文件不存在,那么会自动创建目标对象
    2.使用FileOutPutStream的时候,如果目标文件已经存在,那么会先清空目标文件的数据,然后在写入
    3.使用FileOutPutStream写数据的时候,如果目标文件已经存在,需要在原来基础上追加数据的时候使用New FileOutPutStream(file,true)构造函数,第二参数为true.
    4.使用FileOutPutStream的write方法写数据的时候,虽然接收的是一个int类型的数据,但是真正写出的是一个字节数据,只有把低于八位的二进制写出来,其他的二十四位数据全部被抛弃了

5、实例

 1 package com.dhb.file;
 2 
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 
 7 /**
 8  * @author DSHORE / 2018-7-2
 9  *
10  */
11 public class Demo10 {
12     public static void main(String[] args) throws IOException {
13         writeTest3();
14     }
15     
16     //方式一:每次只能写入一个字节的数据出去
17     public static void writeTest1() throws IOException{
18         //找到目标文件
19         File file=new File("F:\\a.txt");
20         //建立数据的输出通道
21         FileOutputStream fos=new FileOutputStream(file);
22         //把数据写出
23         fos.write('h');
24         fos.write('e');
25         fos.write('l');
26         fos.write('l');
27         fos.write('o');
28         //关闭资源
29         fos.close();
30     }
31     
32     //方式二:
33     public static void writeTest2() throws IOException{
34         //找到目标文件
35         File f=new File("F:\\a.txt");
36         //建立数据的输出通道
37         FileOutputStream fos=new FileOutputStream(f,true);//true:代表在原文件中追加写入当前数据;如果没有true,则原文件中的数据将被当前写入的数据所替代
38         //把数据写出
39         String s="hello worlds";
40         fos.write(s.getBytes());
41         //关闭资源
42         fos.close();
43     }
44     
45     //方式三:
46     public static void writeTest3() throws IOException{
47         //找到目标文件
48         File file=new File("F:\\a.txt");
49         //建立数据的输出通道
50         FileOutputStream fos=new FileOutputStream(file,true);
51         //把数据写出
52         String s="\r\nabc";// \r\n表示:换行,如果只用一个\r或\n,那么只会在第二行追加数据,而不是在下一行添加数据
53         byte[] buf=s.getBytes();//是将一个字符串转化为一个字节数组。
54         int i=buf.length;
55         fos.write(buf,0,i);//0:从字节数组指定的索引值开始, 3:写出3个字节
56         //关闭资源
57         fos.close();
58     }
59 }

原创作者:DSHORE

扫描二维码关注公众号,回复: 1835038 查看本文章

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9254210.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

猜你喜欢

转载自www.cnblogs.com/dshore123/p/9254210.html