用几段代码搞定Java文件流
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流篇
流按照流向分为两种:输入流和输出流
流按照操作类型也是有两种:字节流和字符流
其中: InputStream、OutputStream是处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.
InputStreamReader和OutputStreamWriter则是处理字符流的抽象类的
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文件流相关推荐
- php 编辑器 插入视频,一段代码搞定KindEditor编辑器视频上传播放问题!!
一段代码搞定KindEditor编辑器视频上传播放问题! 打开kindeditor-all.js 在304行的地方添加 Video标签video : ['id', 'class', 'src', 'w ...
- 一文搞定Java IO流√
目录 一.File类 1.1.File常用方法 1.2.练习 二.IO流操作 2.1.流的分类 2.2.四大基本流 2.3.操作IO流的模板 三.字节输入流(InputStream) 3.1.常用方法 ...
- 几行代码搞定java生成解析二维码功能
最近公司要求扫描二维码和生成二维码的功能.而群里部分网友也提到了.我这里就写了一个demo,和大家分享.代码很简介,希望大家能够喜欢. 网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配. ...
- Java三行代码搞定MD5加密
Java三行代码搞定MD5加密 https://www.dexcoder.com/selfly/article/4026 public class MD5Test {public static voi ...
- dout java_一段关于Java文件流操作的代码问题
小弟在初学阶段,为什么这段代码写到txt文件中之后是乱码呢.我看参考答案上面也是用的writeInt来写的.向各位高手请教解决之道.还有就是小弟积分少,没多少积分拿来悬赏.谢谢各位大侠了. impor ...
- java微信支付代码_10行代码搞定微信支付(Java版)
原标题:10行代码搞定微信支付(Java版) 微信支付痛点 对于大多数同学来说,要开发微信支付可不简单.附上微信支付官方文档网页链接 从文档上可以看出,你需要解决很多问题,我就随便挑几个吧. xml与 ...
- python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...
原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了mp.weixin.qq.com 有时候我们做数据可视化并 ...
- 开源作品ThinkJDBC—一行代码搞定数据库操作
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
- thinkjdbc 关闭_ThinkJD: ThinkJD,又名ThinkJDBC,一个强大的开源JDBC/ORM操作库,让你尽可能简洁地用一行代码搞定数据库操作。...
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
最新文章
- 单片机开发工程师需要学哪些,单片机工作的基本条件
- 扎心一问:分库分表就能无限扩容吗?
- 史上最详细的Android Studio系列教程四--Gradle基础
- dw 网页 html 布局,Dreamweaver网页制作之CSS布局规则
- idea2020新建一个jsp页面_有关idea2019版的jsp配置小教程
- 眼坐标系和世界坐标系的相互转换
- Xilinx平台SRIO介绍(五)示例工程Example Design介绍
- Node-red初级入门
- 厚物科技PXIe机箱PXI机箱PXIe便携机HW-1693BAT
- MAC word删除空白页与分节符
- 洛谷P6014 斗牛
- 从Altium官方网站下载库文件
- tableau数据汇总/明细/分-总的行列展示— Lee桑的学习笔记
- HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计...
- IT行业的各岗位职责[转]
- Blob如何在html里转换成图片,前端图片canvas,file,blob,DataURL等格式转换
- 拳王虚拟项目公社:拳王的个人IP打造之路,助你百度霸屏,与个人成长学习经历分享
- 与你一起学习Microsoft Visio——精华篇:流程图规范及技巧
- request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别
- 路由器设置虚拟服务器王者荣耀,封杀王者荣耀 实际很简单_网络设备无线网络和技术-中关村在线...
热门文章
- 超好看的樱花飘落网络科技官网源码
- Android-代码设置TextView字体加粗或者不加粗
- Win10连接远程桌面失败
- Linux学习日记- - -配置篇##1
- ios微信组件跳转_iOSAPP跳转微信小程序
- 2017年搜狗校招Java研发笔试编程题
- Elasticsearch教程---高亮搜索(十二)
- wcdma码片速率_WCDMA中3.84M码片速率的由来
- 思科三层交换机不同vlan互通_cisco(三层交换和动态路由,不同vlan间的通信,静态路由实现全网互通)...
- 产品概念之3/4:五层次理论 —— 消费者体验视角的产品概念