day19/StreamDemo.java

/*
字节流读写操作:

字节流的两个基类	InputStream   OutputStream

读字节流InputStream类下的一个方法:available()	返回值类型是int


*/


import java.io.*;
class StreamDemo 
{
	public static void main(String[] args) throws IOException
	{
		writeFile();
		readFile_1();
		readFile_2();
		readFile_3();
	}
	public static void writeFile() throws IOException
	{
		FileOutputStream fos = new FileOutputStream("fos.txt");
		fos.write("abcdeqq".getBytes());//字符串转换成字节数组
		fos.close();
	}
	
	//读一个字节,取一个字节 。
	public static void readFile_1()	throws IOException
	{
		FileInputStream fis = new FileInputStream("fos.txt");

		int ch=0;
		while((ch=fis.read())!=-1)
		{
			System.out.println((char)ch);
		}
		fis.close();
	}
	
	//先将字节流存入字节数组中,再判断取出。
	public static void readFile_2()	throws IOException
	{
		FileInputStream fis = new FileInputStream("fos.txt");
		
		byte[] bt = new byte[1024];
		int len=0;
		while((len=fis.read(bt))!=-1)
		{
			System.out.println(new String(bt,0,len));
		}
		fis.close();
	}

	
	//这种读取方式,在文件内容非常大时,就不适用。因为大文件时available()方法会内存溢出。
	//所以建议还是使用第二种读出方式。
	public static void readFile_3()	throws IOException
	{
		FileInputStream fis = new FileInputStream("fos.txt");

		//int num = fis.available();//文本里面字母个数

		byte[] bt = new byte[fis.available()];//定义一个刚刚好的缓冲区。不用再循环了。
		fis.read(bt);

		System.out.println(new String(bt));

		fis.close();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值