Java基础之FileInputStream和FileOutputStream流详解

网友投稿 251 2022-10-27


Java基础之FileInputStream和FileOutputStream流详解

一、前言

FileInputStream 用于读取本地文件中的字节数据,继承InputStream类

FileOutputStream 将字节数据写到文件,继承OutputStream类

二、创建流对象

FileInputStream fis= new FileInputStream(“绝对路径”);

FileOutputStream fos= new FileOutputStream(“绝对路径”);

三、FileInputStream常用方法

1.构造函数,打开实际文件路径连接来创建FileInputStream

FileInputStream(路径);

2.关闭文件输入输出流,释放有关系统资源

没有返回值,一般搭配输入输出留的对象

close();

fis.close();

fos.close();

3.读取数据字节,有返回值

read();返回的是字节的(0-255)内的字节值,读一个自动到下一个,遇到-1即退出

read();//读取一个数据字节,http://

read(byte[] b);//将b.length个字节的数据读入一个 byte 数组中

read(byte[] b,int off,int len)//将off到len 个字节的数据读入一个byte 数组中

4.从输入流中跳过并丢弃 n 个字节的数据

kip(long n); //返回值为long

四、FileOutputStream常用方法

写入文件

write(int b);//将指定字节写入文件,写入字节形式的(0-255)int值.

write(byte[] b); //将b.length 个字节从指定 byte 数组写入此文件

write(byte[] b, int off, int len); //将指定 byte 数组中从偏移量 off 开始的 len 个字节写入文件

五、输入输出流测试代码

一个个字节读入,并一个个字节输出到另一个文件,即复制文件

class test1{

public static void main(String[] args) throws IOException {

int b;

FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt"); //创建输入流对象

FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt"); //创建输出流对象

while((b = fis.read()) != -1) { //将每次读到的赋值给b

System.out.println(b);

fos.write(b); //将b中的字节写出去

}

fis.close();/关流,释放资源

fos.close();

}

}

该测试代码输出的是对应的ASCII码值,每一个换行都会在输出对应的换行和回车键的ASCII码

并且将text1的文件复制到text2文件,只不过是一个个字节传送,比较缓慢

设置缓冲区,将一个个字节存放之后,在对应输入输出,加快了速度

class test1{

public static void main(String[] args) throws IOException {

//int b;

uAFefi FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt"); //创建输入流对象

FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt"); //创建输出流对象

byte[] bytes = new byte[1024*10];//用数组当一个缓冲区

while(( fis.read(bytes)) != -1) {

System.out.println(bytes); //将每次读到的赋值给bytes

fos.write(bytes); //将bytes中的字节写出去

}

fis.close(); //关流,释放资源

fos.close();

}

}

可以将以上的方法在代码中一个个尝试


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何拒绝搜狗浏览器改变IE默认搜索
下一篇:salt限制用户权限
相关文章

 发表评论

暂时没有评论,来抢沙发吧~