/*
字节流读写操作:
字节流的两个基类 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();
}
}
day19/StreamDemo.java
最新推荐文章于 2021-05-22 10:35:07 发布