关于JAVA语言.io.File中FileInputStream与FileOutputStream的基本使用
小标 2018-09-11 来源 : 阅读 1099 评论 0

摘要:本文主要向大家介绍了关于JAVA语言.io.File中FileInputStream与FileOutputStream的基本使用,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了关于JAVA语言.io.File中FileInputStream与FileOutputStream的基本使用,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

什么是InputStream和OutputStream?
InputStream和OutputStream是抽象类,是所有字节输入流和输出流的父类。这里,我们首先要分清楚两个概念:
InputStream(输入流):输入流是用来读入数据的。- - - > > >读入OutputStream(输出流):输出流是用来写出数据的。- - - > > >写出

文件输入流——FileInputStream
FileInputStream 从文件系统中的某个文件中获得输入字节。

构造方法
//通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。public FileInputStream(File file); //通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。public FileInputStream(String name);

常用的方法

从输入流中读取一个字节大小的数据
//从此输入流中读取一个数据字节。public int read();

从输入流一次读取一个字节数组
//从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。public int read(byte[] b); //从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。off:目标数组 b 中的起始偏移量。public int read(byte[] b,int off,int len);
从文件中读取数据:
import java.io.FileInputStream; /** * FileInputStream:节点流(低级流),从文件中读入数据 * @author Administrator * */public class FISDemo01 { public static void main(String[] args){  String content=null;  try {int size=0;//定义一个字节缓冲区,该缓冲区的大小根据需要来定义byte[] buffer=new byte[1024];FileInputStream fis=new FileInputStream("FOSDemo.txt");//循环来读取该文件中的数据while((size=fis.read(buffer))!=-1){ content=new String(buffer, 0, size); System.out.println(content);}  //关闭此文件输入流并释放与此流有关的所有系统资源。   fis.close();  } catch (Exception e) {e.printStackTrace();  } }}
文件输出流——FileOutputStream
文件输出流是用于将数据写入到文件中。

构造方法
//创建一个向指定 File 对象表示的文件中写入数据的文件输出流。public FileOutputStream(File file); //创建一个向指定 File 对象表示的文件中写入数据的文件输出流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。public FileOutputStream(File file,boolean append); //创建一个向具有指定名称的文件中写入数据的输出文件流。public FileOutputStream(String name); //创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。public FileOutputStream(String name,boolean append);
常用的方法
向文件中写入一个字节大小的数据
//向文件中写入一个字节大小的数据public void write(int b);

向文件中一次性写入一个字节数组的数据
//将 b.length 个字节从指定 byte 数组写入此文件输出流中。public void write(byte[] b); //指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 public void write(byte[] b,int off,int len);
向文件中写出数据:
import java.io.FileOutputStream; /** * FileOutputStream:节点流(低级流),向文件中写出数据  * @author Administrator * */public class FOSDemo01 { public static void main(String[] args){  try {//向文件中写入字节数组String font="输出流是用来写入数据的!";FileOutputStream fos = new FileOutputStream("FOSDemo.txt");fos.write(font.getBytes());//关闭此文件输出流并释放与此流有关的所有系统资源。此文件输出流不能再用于写入字节。 如果此流有一个与之关联的通道,则关闭该通道。 fos.close();  } catch (Exception e) {e.printStackTrace();  } }}

使用FileInputStream和FileOutputStream实现文件的复制
import java.io.FileInputStream;import java.io.FileOutputStream; /** * 使用文件输入流和文件输出流实现文件的复制 * @author Administrator * */public class SummaryFISAndFOS { public static void main(String[] args){  /*** 1.先将文件中的内容读入到输入流中* 2.将输入流中的数据通过输出流写入到目标文件中* 3.关闭输入流和输出流*/  try {long begin=System.currentTimeMillis();//从输入流中读取数据FileInputStream fis=new FileInputStream("FOSDemo.txt");//向输出流中写入数据FileOutputStream fos=new FileOutputStream("FISAndFOSDest.txt");//先定义一个字节缓冲区,减少I/O次数,提高读写效率byte[] buffer=new byte[10240];int size=0;while((size=fis.read(buffer))!=-1){ fos.write(buffer, 0, size);}fis.close();fos.close();long end=System.currentTimeMillis();System.out.println("使用文件输入流和文件输出流实现文件的复制完毕!耗时:"+(end-begin)+"毫秒");  } catch (Exception e) {e.printStackTrace();  }  //解决JNI问题(Java Native Interface)  System.exit(0); }}
运行结果:
使用文件输入流和文件输出流实现文件的复制完毕!耗时:17毫秒
以上基本上就是我们经常用到的方法的介绍,记得最后一定要close()哦!    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程