我们知道计算机读取文件实际上读取的二进制的编码文件,Java在对文件的操作方面提供了很强大的功能.今天我们来说说
java读取二进制文件的字节输入流和字节输出流.
还是来看看代码吧,代码比较简单,如下截图
package Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
/*
* 输出流就是从文件中写信息
* 输入流就是从文件中读信息
*
*/
public class Demo {
public static void main(String[] args) {
File f=new File("word.txt");
FileOutputStream out=null;
try {
out=new FileOutputStream(f,false);//创建字符串输出对象.后面有一个bool值,表示在文件中追加信息.
String str="你见过洛杉矶:凌晨四点的样子吗???";
byte DataArraya[]=str.getBytes();//将字符串转换为字节数组
try {
out.write(DataArraya);//将字节流的数据写入到文件里面.
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(out!=null) {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//从文件里面读信息,使用的就文件输入流来看看代码
FileInputStream in=null;
try {
in=new FileInputStream(f);//将上面代码创建的文件里面数据写入到我们的对象里面.输入流 读文件
byte arr1[]=new byte[200];//创建字节缓冲区
try {
int len=in.read(arr1);//将字节数据读取到缓冲区,读入缓冲区域的字节数字
System.out.println("文件里面的数据为:"+new String(arr1,0,len));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//读取字节缓冲区的内容
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(in !=null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
前面部分的代码,我们创建了一个字节输出流,向word.txt文件里面写入东西,后面的代码我们创建字节输入流,从文件里面读东西这里有几个方法需要大家的注意,
1.将字符串穿转换为字节数组的函数调用的式str.getBytes.
2.FileOutputStream向文件写入数据的函数,后面有两个参数,一个式一个文件对象,后面则是一个布尔数值,为真的话表示在后面追加信息.默认式false
3.从文件读信息使用的式字节输入流。从数据源流入到我们的程序我们称之为输入流。反之就是输出流.
4.输入流读取文件的时候有一个它返回的式一个数值,表示读取的长度.
4.newString构造方法将缓冲区的字节数转换为字符串输出,java虚拟机后台自动完成这个功能的。并不需要我们手动去实现.