动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

浅谈字节输出流OutputStream

05-26 17:32 867浏览
举报 T字号
  • 大字
  • 中字
  • 小字

字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,字节输出流OutputStream就是典型的两种字节流之一。

说到字节输出流OutputStream就不得不提到OutputStream抽象类,此类是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性功能方法。

java.io.OutputStream:字节输出流,此抽象类是表示输出字节流的所有类的超类。定义了一些子类共性的成员方法:

- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。

- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。

- public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。

- public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。

- public abstract void write(int b) :将指定的字节输出流。

构造方法:

FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。

FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

参数:写入数据的目的

String name:目的地是一个文件的路径

File file:目的地是一个文件

构造方法的作用:

1.创建一个FileOutputStream对象

2.会根据构造方法中传递的文件/文件路径,创建一个空的文件

3.会把FileOutputStream对象指向创建好的文件

输出流中定义都是写write方法,如下图:

虽然参数为int类型四个字节,但是只会保留一个字节的信息写出 ,

当完成流的操作时,必须调用close()方法,释放系统资源。

FileOutputStream类:

OutputStream有很多子类,其中子类FileOutputStream可用来写入数据到文件。

FileOutputStream类,即文件输出流,是用于将数据写入 File的输出流。

FileOutputStream类写入数据到文件中

将数据写到文件中,代码演示:

public class FileOutputStreamDemo {
	public static void main(String[] args) throws IOException {
		//需求:将数据写入到文件中。
		//创建存储数据的文件。
		File file = new File("c:\\file.txt");
		//创建一个用于操作文件的字节输出流对象。一创建就必须明确数据存储目的地。
		//输出流目的是文件,会自动创建。如果文件存在,则覆盖。
		FileOutputStream fos = new FileOutputStream(file);
		//调用父类中的write方法。
		byte[] data = "abcde".getBytes();
		fos.write(data);
		//关闭流资源。
		fos.close();
	}
}

给文件中续写和换行:

我们直接new FileOutputStream(file)这样创建对象,写入数据,会覆盖原有的文件,那么我们想在原有的文件中续写内容怎么办呢?

继续查阅FileOutputStream的API。发现在FileOutputStream的构造函数中,可以接受一个boolean类型的值,如果值true,就会在文件末位继续添加。

回车符\r和换行符\n :

回车符:回到一行的开头(return)

换行符:下一行(newline)

系统中的换行:

Windows系统里,每行结尾是 回车+换行 ,即\r\n;

Unix系统里,每行结尾只有换行,即\n;

Mac系统里,每行结尾是回车,即\r。从 Mac OS X开始与Linux统一

给文件中续写数据和换行,代码演示:

public static void main(String[] args) throws Exception {
		File file = new File("c:\\file.txt");
		FileOutputStream fos = new FileOutputStream(file, true);
		String str = "\r\n"+"it";
		fos.write(str.getBytes());
		fos.close();
}

以上就是关于字节输出流的相关知识,不得不说,字节输出流作为字节流的一种,我们单独理解起来比较麻烦,我们可以统筹一下所有的Java字节流,结合在一起来学习会事半功倍,再结合动力节点在线的面试视频课程,学习起来会轻松许多。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消