File类的使用

文件是:文件可认为是相关记录或放在一起的数据的集合。
Java中,使用java.io.File类对文件进行操作

public class FileDemo {public static void main(String[] args) {String path = "E:\\pdd";File f = new File(path);//判断是文件还是目录System.out.println(f.isFile());System.out.println(f.isDirectory());}
}
image.png

对于File类还有其他很多方法的使用,建议在使用时进行查询文档。

字节流

  • 字节输入流 :InputStream (读)
  • 字节输出流 :OutputStream (写)

    image.png

image.png


FileInputStream
  • 读取诸如图像数据的原始字节流,如图片,文件中的字节。

    image.png

image.png

public class FileDemo {public static void main(String[] args) {String path = "";// FileInputStream,try {FileInputStream fs = new FileInputStream(path);try {int n = fs.read();System.out.print((char)n);fs.close();} catch (FileNotFoundException e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}}
}

代码中注意异常的继承关系,外层异常不能为内层异常的子类。

FileOutputStream

将数据写入文件中。

image.png

image.png

缓冲流
  • BufferedInputStream
  • BufferedOutputStream
    缓冲流,当缓冲区满了,提交,减少频繁写入操作。
public class FileDemo {public static void main(String[] args) {String path = "";try {FileOutputStream fos = new FileOutputStream(path);BufferedOutputStream bos = new BufferedOutputStream(fos);FileInputStream fis = new FileInputStream(path);BufferedInputStream bis = new BufferedInputStream(fis);bos.write(50);bos.write('a');//提交数据到文件bos.flush();bos.close();System.out.println(bis.read());bis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}

字符流

  • 字符输入流 : Reader
  • 字符输出流 : Writer
字节字符转换流
  • InputStreamReader 输入
  • OutputStreamWriter 输出

读写数据时保持编码一致。

对象的序列化和反序列化

对象序列化步骤:

  1. 创建一个类继承Serializable接口
  2. 创建对象
  3. 处理对象(写文件,发http,入库等)
  4. 读取对线
  • ObjectInputStream 对象输入流
  • ObjectOutputStream 对象输出流

示例:
新建一个Goods.java文件,定义一个Goods类并继承Serializable接口

public class Goods implements Serializable{private String goodsId;private String goodsName;private double price;@Overridepublic String toString() {return "Goods{" +"goodsId='" + goodsId + '\'' +", goodsName='" + goodsName + '\'' +", price=" + price +'}';}public Goods(String goodsId, String goodsName, double price){this.goodsId = goodsId;this.goodsName = goodsName;this.price = price;}public String getGoodsId() {return goodsId;}public void setGoodsId(String goodsId) {this.goodsId = goodsId;}public String getGoodsName() {return goodsName;}public void setGoodsName(String goodsName) {this.goodsName = goodsName;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}
}

再建一个测试入口文件名为GoodsTest.java

public class GoodsTest {public static void main(String[] args) {String path = "1.txt";Goods gd = new Goods("001", "allen", 6.0);try {FileOutputStream fos = new FileOutputStream(path);ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(gd);oos.writeBoolean(true);oos.flush();oos.close();System.out.println("-----------------------------------");FileInputStream fis = new FileInputStream(path);ObjectInputStream ois = new ObjectInputStream(fis);try {Goods gt = (Goods)ois.readObject();boolean b = ois.readBoolean();System.out.println(gt);System.out.println(b);} catch (ClassNotFoundException e) {e.printStackTrace();}ois.close();}catch (IOException e){e.printStackTrace();}}
}

对名为1.txt的文件进行类的存储和读取。

注:养成看官方文档的习惯,因为毕竟有些方法用的频率很少,当你使用时去查阅即可,文章中关于类的方法部分没有详情,请查阅官方手册,手册中写的很清楚。

如果文章对你有帮助记得点赞~,关注作者第一时间获得最新更新~~。
祝好~~~

Java入门—输入输出流相关推荐

  1. Java高效输入输出流讲解

    Java高效输入输出流讲解 Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputS ...

  2. Java之输入输出流(文件的读写)

    Java之输入输出流(文件的读写) 首先,在编程的世界,流明显显得很重要.C++的输入输出流,Java的输入输出流等等. 首先我们得学会如何使用Java的输入输出流.首先,它们被封装在Java的一个叫 ...

  3. java回忆录—输入输出流详细讲解(入门经典)

    今天我们开始进入学习 java 中比较让人头疼的事, 那就是 I/O 流.多线程.网络编程.这里对 I/O 流的一个详细讲解.希望对大家有点用吧.(不看后悔哦) 一.什么是IO Java中I/O操作主 ...

  4. java实验 输入输出流_java实验七 输入输出流

    有关java的实验和程序 实验七 输入输出流 一.实验目的和要求 目的: 1.掌握使用输入输出流进行文件的读写操作. 要求: 1.实验报告给出内容1,2的填充代码以及内容3的全部源代码. 二.实验内容 ...

  5. Java(2)-Java IO输入输出流

    一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  6. java+输出流++空值_一文搞定Java的输入输出流等常见流

    点赞再看,养成习惯,常用流,多看多练准没错!文章较长,建议收藏再看! 1.IO流分析 什么是IO? I:Input O:Output 通过IO可以完成对硬盘的读和写. IO流的分类. 有多种分类方式: ...

  7. 浅谈Java的输入输出流

    Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象.在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输 ...

  8. Java - io输入输出流 --转换流

    转换流  转换输出流 OutputStreamWriter: 说明: /* * OutputStreamWriter 这个类的作用 * 就是指定输出流的编码格式 * 这个类的构造方法 需要传递 一个输 ...

  9. Java入门输入提升:数组与字符数组以及多维数组的输入

    开篇前吐槽一点,java 的输入输出真的是值得被诟病的一点,比之其他常用语言难搞数倍不止,对于像我一样的小白十分不友好. 本小白通过查阅大量他人经验,总结了如下两种方式,以例题说代码,仅供大家参考: ...

最新文章

  1. 综述:如何给模型加入先验知识
  2. Android Nougat 有望本月到来:支持手动曝光调节
  3. Android中实现不同文字颜色和图文混排的Span总结
  4. 虚拟磁盘类型_一起来了解一下Window10系统中虚拟硬盘的相关操作
  5. 第二届数据科学家大会 专家豪华阵容公布!
  6. Groovy全攻略--嵌入篇
  7. fiddler实现后端接口 mock(不需要修改开发代码)
  8. 课程题目 : 1003. 简单字符串匹配
  9. 如何复制PDF文件中的文本和图片?
  10. django orm级联_django系列5.3--ORM数据库的多表操作
  11. java版b2b2c社交电商spring cloud分布式微服务 (三) 服务消费者(Feign)
  12. Butterfly-蝴蝶-主题优化、美化-Lete乐特
  13. 记录进行Uniprot转化为Entrez ID的过程
  14. 中国可以用计算机吗,能用计算器吗?中国小学四年级数学题让外国大学生崩溃!...
  15. JAVA 图片格式转换 jpg、jpeg、png格式互转
  16. java-家庭作业3
  17. Git 笔记 - git rebase
  18. 腾讯位置服务模仿微信发送位置功能
  19. 2021哈工大深入理解计算机系统Lab5(linklab)
  20. Zabbix的item数据采集、tigger监控规则、action触发动作原理介绍

热门文章

  1. 华为hybrid-vlan
  2. 从特急到难产 光伏增补项目抢不抢630?
  3. TPYBoard自制微信远程智能温湿度计
  4. 每天一命令 git checkout
  5. 自己动手,做一款抬头显示的「Todo Hud」
  6. “雾霾”天里坐看云起时-【软件和信息服务】2014.01
  7. UDP客户端不用绑定吗IP和端口?
  8. iPhone开发:通过NSURLRequest获得服务器返回的http header和http status
  9. manage.py命令
  10. 计算两个时间的间隔时间是多少