当前位置:   article > 正文

阶段二29_面向对象高级_IO[字节输出流FileOutputStream写数据到文件]_fileoutputstream追加写入文件

fileoutputstream追加写入文件

知识点:

  1.字节流写数据的步骤和实现代码。
  2.字节流写数据的3种方式:write(int b),write(byte[] b),write(byte[] b, int off, int len)
  3.字节流写数据如何实现换行
  4.字节流写数据如何实现追加写入
  5.创建字节输出流对象:
    FileOutputStream fos = new FileOutputStream("D:\\a.txt");
    FileOutputStream fos = new FileOutputStream(new File("D:\\a.txt"))
    FileOutputStream fos = new FileOutputStream("bytestream\\a.txt",true);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

一.IO流概述

I表示intput,是数据从硬盘进内存的过程,称之为读
 O表示output,是数据从内存到硬盘的过程。称之为写
  • 1
  • 2

二.IO流的分类

IO流:

  输入流和输出流
  • 1

IO流:

  字节流[操作所有类型的文件,包含音频图片等文件]和字符流[只能操作纯文件文件,包含java文件txt文件]
  • 1

三.字节流

1.字节流写数据的步骤:

  (1)创建字节输出流对象
     注意事项:
       如果文件不存在,就创建。
       如果文件存在就清空。
  (2)写数据
     注意事项:
       写出的整数,实际写出的是整数在码表上对应的字母
  (3)释放资源
     注意事项:
       每次使用完流必须要释放资源。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.字节流写数据的简单实现:

  public class OutputDemo1 {
    public static void main(String[] args) throws IOException {
        //1.创建字节输出流的对象
        FileOutputStream fos = new FileOutputStream("D:\\a.txt");
        //FileOutputStream fos = new FileOutputStream(new File("D:\\a.txt"));
        //2.写数据
        fos.write(97);
        //3.释放资源
        fos.close();
    }
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.字节流写数据的3种方式

第1种:void write(int b)	一次写一个字节数据
第2种:void write(byte[] b)	一次写一个字节数组数据
第3种:void write(byte[] b, int off, int len)	一次写一个字节数组的部分数据 
  • 1
  • 2
  • 3

具体代码实现:

public class OutputDemo3 {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bytestream\\a.txt");
        //第1种:void write(int b)	一次写一个字节数据
        fos.write(97);
        //第2种:void write(byte[] b)	一次写一个字节数组数据
        byte [] bys1 = {97,98,99};
        fos.write(bys1);
        //第3种:void write(byte[] b, int off, int len)	一次写一个字节数组的部分数据 
        byte [] bys = {97,98,99,100,101,102,103};
        fos.write(bys,1,2);
        fos.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4.字节流写数据如何实现换行.

  4.1写完数据后,加换行符:
	windows:\r\n
	linux:\n
	mac:\r
  4.2实现案例:
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bytestream\\a.txt");
        fos.write(97);
        //能加一个换行
        fos.write("\r\n".getBytes());
        fos.close();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

5.字节流写数据如何实现追加写入呢

 5.1 实现说明:
    public FileOutputStream(String name,boolean append)
    创建文件输出流以指定的名称写入文件。如果第二个参数为true ,不会清空文件里面的内容
  5.2实现案例:
    public static void main(String[] args) throws IOException {
        //第二个参数就是续写开关,如果没有传递,默认就是false,
        //表示不打开续写功能,那么创建对象的这行代码会清空文件.
        //如果第二个参数为true,表示打开续写功能
        //那么创建对象的这行代码不会清空文件.
        FileOutputStream fos = new FileOutputStream("bytestream\\a.txt",true);
        fos.write(97);
        fos.close();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

四.字节流写数据加try…catch…finally异常处理标准流程

 FileOutputStream fos = null;
	try {
		fos = new FileOutputStream("D:\\a.txt");
		fos.write(97);
	}catch(IOException e){
	   e.printStackTrace();
	}finally {
		//finally语句里面的代码,一定会被执行.
		if(fos != null){
			try {
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

五.小结:

①创建字节输出流对象
  文件不存在,就创建。
  文件存在就清空。如果不想被清空则加true
②写数据
  可以写一个字节,写一个字节数组,写一个字节数组的一部分
  写一个回车换行:\r\n
③释放资源
  在捕获异常的finally中去关闭释放
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

六.更多精彩内容
http://www.gxcode.top/code
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/147080
推荐阅读
相关标签
  

闽ICP备14008679号