牧佑OneZeroZeroDayDream--File字节流读入与输出简单实现

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * 	// 输入字节流  输出字节流
	InputStream  outputStream
	// 字节流是用来操作媒体数据的
	//字符流抽象基类。操作文字的
	Reader Writer
	// 往文件里面写内容
	// 字符串一个get数组的方法 
	OutputStream os = new OutputStream("D:\\war3\\sgt.txt");
	os.write("Hello World!!".getBytes());
	// 字符串刷新,让他提交。不然不会写
	os.flush();
	// 用完流必须关闭流对象,不然会占着系统资源会引起操作系统的内存溢出
	os.close();
	
	InputStream 读取的时候 采用数组1024读取。如果文件过大,读取一遍1024发现
	没有读取完毕的时候需要定义一个循环来,开始读取
	如果读取时候小于1024 后面的就回被空格所代替。所以就需要在程序里面截取 数组实际长度
 * @author muyoushushu
 *
 */
public class FileStreamDemo {
	public static void main(String[] args) {
		OutputStream os = null;
		InputStream is = null;
		try {
			os=new FileOutputStream("D:\\xx.txt");
			os.write("拒绝平庸,如果平庸。必须去死".getBytes());
			os.flush();
			is = new FileInputStream("D:\\xx.txt");
			byte buf[] = new byte[1024];
			int len; 
			StringBuilder sb = new StringBuilder();
			//如果这个文件读取完毕的时候,read返回值是一个-1
			while((len =is.read(buf)) != -1){
				// 重新定义一个数组
				byte btye[];
				if(len < 1024){
					 btye= new byte[len];
					// 数组 copy
					System.arraycopy(buf, 0, btye,0,len);
					sb.append(new String(btye));
				} else {
					sb.append(new String(buf));
				}
			}
			System.out.println(sb.toString());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				os.close();
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值