码迷,mamicode.com
首页 > 编程语言 > 详细

【JavaSE】day09_节点流和高级流

时间:2015-08-28 23:22:41      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

【JavaSE】day09_节点流和高级流


1.FileOutputStream

1)java.io.FileOutputStream

 * 文件的字节输出流,用于向文件中写出字节。是一个低级流。


2)默认创建的FOS是覆盖写操作。

         * 该覆盖操作是在写内容前将原文件所有数据清除,然后重新写入新内容。


3)还支持一个重载的构造方法,第二个参数传入一个boolean值,若该值为true,则是追加写操作,

   * 即:通过该流写出的数据会在当前文件的末尾写入。 而不是将原来的数据都清除。

具体实现见代码:


package day02;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * java.io.FileOutputStream
 * 文件的字节输出流,用于向文件中写出字节。是一个低级流。
 *
 */
public class FOSDemo1 {
	public static void main(String[] args) throws IOException {
		/*
		 * 默认创建的FOS是覆盖写操作。
		 * 该覆盖操作是在写内容前将原文件所有数据清除,
		 * 然后重新写入新内容。
		 */
		//FileOutputStream fos = new FileOutputStream("fos.txt");
		
		/*
		 * 还支持一个重载的构造方法,第二个参数传入一个
		 * boolean值,若该值为true,则是追加写操作,
		 * 即:通过该流写出的数据会在当前文件的末尾写入。
		 * 而不是将原来的数据都清除。
		 */
		FileOutputStream fos = new FileOutputStream("fos.txt",true);
		
		String str = "一步两步,一步两步像爪牙,像魔鬼的步伐";
		
		byte[] data = str.getBytes();
		
		fos.write(data);
		
		/*
		 * 流使用完毕也要关闭,释放资源!
		 */
		fos.close();
		
	}

}

2.FileInputStream

1)FileInputStream  ---- 低级流,用于读取文件数据的流。

代码:

package day02;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * FileInputStream
 * 低级流,用于读取文件数据的流
 *
 */
public class FISDemo1 {
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("fos.txt");
		
		byte[] data = new byte[200];
		int len = fis.read(data);
		
		String str = new String(data,0,len);
		System.out.println(str);
		
		fis.close();
	}

}

3.BufferedOutputStream与BufferedInputStream

具体细节见代码:

package day02;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 缓冲流写出数据注意事项:
 */
public class BOSDemo {
	public static void main(String[] args) throws IOException {
		FileOutputStream fos = new FileOutputStream("bos.txt");
		
		BufferedOutputStream bos = new BufferedOutputStream(fos);
		
		String str = "我爱北京天安门";
		byte[] data = str.getBytes();
		
		bos.write(data);
		
		/*
		 * void flush()
		 * 该方法会强制将缓冲区中的数据一次性写出,不管缓冲区
		 * 是否已经装满。频繁调用flush()方法会提高写出次数从
		 * 而降低写出效率,但是会保证写出的及时性。
		 */
		bos.flush();
		
		/*
		 * 当关闭缓冲流的时候,它会首先调用flush()将剩余在缓冲区
		 * 中的数据先写出,然后再将它处理的流关闭后,才将自己关闭。
		 */
		bos.close();
	}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

【JavaSE】day09_节点流和高级流

标签:

原文地址:http://blog.csdn.net/u011637069/article/details/48064061

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!