Java文件流

File类篇

1.File类
在学习File类之前,需要知道的有以下两点:
(1)File类是java.io包下的一个类
(2)应该将File理解成路径而不是文件

我们学习File,首先就要先了解它的构造方法

2.File的构造方法
下面的代码可以很清晰地看到它的构造方法

public static void main(String[] args)
{//构造一个新文件,括号中为文件的目录File file = new File("C:\\Users\\lgx\\Desktop\\lgx.txt");//打印出来结果为trueSystem.out.println(file.exists());
}

再说一下File的构造方法吧,它的优势在于可以对某一个文件路径下的多个文件进行操作

public static void main(String[] args)
{   String parents = "C:\\Users\\lgx\\Desktop";String child = "lgx.txt";File file = new File(parent,child);System.out.println(file.exists());
}

3.常见的对File类操作的几个方法
1)创建一个文件 .createNewFile() ,运行一次后会返回true,第二次返回false(因为运行并刷新之后文件就已经存在了)
(2)重命名一个文件
File a = new File(“a.txt”);
File b = new File(“b.txt”);
a.renameTo(b); 就是将文件名为a的文件变成文件名为b的文件(文件内容不变)
(3)删除一个文件 .delete(); (注:这个方法不能删除文件夹下有文件或有文件夹的情况,该方法只能删除一个文件或者一个空的文件夹)
(4)获取文件的字符的个数 .length();
(5)获取文件的相对路径 .getPath();
(6)获取文件的绝对路径 .getAbsolutePath();
(7)获取文件的名称 .getName();
(8)获取最后一次修改时间 .lastModified();

IO流篇

流按照流向分为两种:输入流输出流
流按照操作类型也是有两种:字节流字符流
其中: InputStreamOutputStream是处理字节流的抽象类

InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.

InputStreamReaderOutputStreamWriter则是处理字符流的抽象类

InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.
OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.

使用IO流的时候,尤其要注意以下几点:
使用前,需要导入IO包相关类,例如前面学习的File

使用时,进行IO异常处理。打开一个文件,这个文件路径很可能不存在,这样异常需要处理。

使用后,需要释放资源。例如,打开文件读取之后,需要关闭文件,释放内存资源

(1)FileInputStream(输入)

//import java.io.*;
public static void main(String[] args)  throws IOException //异常处理
{//创建流对象FileInputStream fis = new FileInputStream("lgx.txt");int a = 0;//读取(文件结束的标记符号是-1,该方法的读取效率较低)while((b = fis.read()) != -1){System.out.println(b);}//关闭文件,释放资源fis.close();
}

(2)FileOutputStream(输出)

public static void main(String[] args) throws IOException
{FileOutputStream fos = new FileOutputStream("lgx.txt");//写入字节fos.write(666);//同样,FileOutputStream也需要关闭fos.close();
}

(3)利用输入输出对文件进行拷贝

package my;import java.io.*;public class CopyFile
{public static void main(String[] args) throws IOException {//1.创建输入流对象FileInputStream fis = new FileInputStream("文件的绝对路径");//2.创建输出流对象FileOutputStream fos = new FileOutputStream("拷贝后的文件名")int a;//3.循环判断,不为-1就写入文件while ((a = fis.read()) != -1) {//4. 写入文件fos.write(a);}//5.关闭输入流fis.close();//6.关闭输出流fos.close();}
}

用几段代码搞定Java文件流相关推荐

  1. php 编辑器 插入视频,一段代码搞定KindEditor编辑器视频上传播放问题!!

    一段代码搞定KindEditor编辑器视频上传播放问题! 打开kindeditor-all.js 在304行的地方添加 Video标签video : ['id', 'class', 'src', 'w ...

  2. 一文搞定Java IO流√

    目录 一.File类 1.1.File常用方法 1.2.练习 二.IO流操作 2.1.流的分类 2.2.四大基本流 2.3.操作IO流的模板 三.字节输入流(InputStream) 3.1.常用方法 ...

  3. 几行代码搞定java生成解析二维码功能

    最近公司要求扫描二维码和生成二维码的功能.而群里部分网友也提到了.我这里就写了一个demo,和大家分享.代码很简介,希望大家能够喜欢. 网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配. ...

  4. Java三行代码搞定MD5加密

    Java三行代码搞定MD5加密 https://www.dexcoder.com/selfly/article/4026 public class MD5Test {public static voi ...

  5. dout java_一段关于Java文件流操作的代码问题

    小弟在初学阶段,为什么这段代码写到txt文件中之后是乱码呢.我看参考答案上面也是用的writeInt来写的.向各位高手请教解决之道.还有就是小弟积分少,没多少积分拿来悬赏.谢谢各位大侠了. impor ...

  6. java微信支付代码_10行代码搞定微信支付(Java版)

    原标题:10行代码搞定微信支付(Java版) 微信支付痛点 对于大多数同学来说,要开发微信支付可不简单.附上微信支付官方文档网页链接 从文档上可以看出,你需要解决很多问题,我就随便挑几个吧. xml与 ...

  7. python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...

    原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了​mp.weixin.qq.com 有时候我们做数据可视化并 ...

  8. 开源作品ThinkJDBC—一行代码搞定数据库操作

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

  9. thinkjdbc 关闭_ThinkJD: ThinkJD,又名ThinkJDBC,一个强大的开源JDBC/ORM操作库,让你尽可能简洁地用一行代码搞定数据库操作。...

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

最新文章

  1. 单片机开发工程师需要学哪些,单片机工作的基本条件
  2. 扎心一问:分库分表就能无限扩容吗?
  3. 史上最详细的Android Studio系列教程四--Gradle基础
  4. dw 网页 html 布局,Dreamweaver网页制作之CSS布局规则
  5. idea2020新建一个jsp页面_有关idea2019版的jsp配置小教程
  6. 眼坐标系和世界坐标系的相互转换
  7. Xilinx平台SRIO介绍(五)示例工程Example Design介绍
  8. Node-red初级入门
  9. 厚物科技PXIe机箱PXI机箱PXIe便携机HW-1693BAT
  10. MAC word删除空白页与分节符
  11. 洛谷P6014 斗牛
  12. 从Altium官方网站下载库文件
  13. tableau数据汇总/明细/分-总的行列展示— Lee桑的学习笔记
  14. HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计...
  15. IT行业的各岗位职责[转]
  16. Blob如何在html里转换成图片,前端图片canvas,file,blob,DataURL等格式转换
  17. 拳王虚拟项目公社:拳王的个人IP打造之路,助你百度霸屏,与个人成长学习经历分享
  18. 与你一起学习Microsoft Visio——精华篇:流程图规范及技巧
  19. request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别
  20. 路由器设置虚拟服务器王者荣耀,封杀王者荣耀 实际很简单_网络设备无线网络和技术-中关村在线...

热门文章

  1. 超好看的樱花飘落网络科技官网源码
  2. Android-代码设置TextView字体加粗或者不加粗
  3. Win10连接远程桌面失败
  4. Linux学习日记- - -配置篇##1
  5. ios微信组件跳转_iOSAPP跳转微信小程序
  6. 2017年搜狗校招Java研发笔试编程题
  7. Elasticsearch教程---高亮搜索(十二)
  8. wcdma码片速率_WCDMA中3.84M码片速率的由来
  9. 思科三层交换机不同vlan互通_cisco(三层交换和动态路由,不同vlan间的通信,静态路由实现全网互通)...
  10. 产品概念之3/4:五层次理论 —— 消费者体验视角的产品概念