File 类的用法和 InputStream, OutputStream 的用法

1.File类的用法

 下面就用几个简单的代码案例来熟悉File类里面函数的用法:

public class IODemo1 {public static void main(String[] args) throws IOException {File f = new File("./test2.txt");//File f = new File("C:/User/1/test.txt");System.out.println(f.getParent());System.out.println(f.getName());System.out.println(f.getPath());System.out.println(f.getAbsolutePath());System.out.println(f.getCanonicalPath());//对于绝对路径的简化}
}

运行结果: 

 

 

public class IODemo2 {public static void main(String[] args) throws IOException {File f = new File("./test.txt");System.out.println(f.exists());// 该文件是否存在System.out.println(f.isFile());// 是否有该文件System.out.println(f.isDirectory());// 是否有目录boolean ret = f.createNewFile();//这个是用来创建文件的System.out.println(ret);}
}

 运行结果:为 true true false false

  这个运行结果是已经创建了 test.txt这个文件了。

public class IODemo3 {public static void main(String[] args) {File f = new File("./test.txt");//jvm 退出是才删除f.deleteOnExit();}
}
public class IODemo4 {public static void main(String[] args) {File f = new File(".");File[] list = f.listFiles();// . 表示当前路径 返回 File 对象代表的目录
下的所有文件,以 File 对象表示System.out.println(Arrays.toString(list));}
}
public class IODemo5 {public static void main(String[] args) {File f = new File("./aaa/bbb/ccc");boolean ret = f.mkdirs();// 与mkdirs的区别 如果上级没有就会创建// mkdir 如果上级没有这会报错System.out.println(ret);}
}
public static void main(String[] args) throws IOException {//进行文件改名,也可以视为我们平时的剪切、粘贴操作File src = new File("./test2.txt");//src.createNewFile();File dest = new File("./aaa/test2.txt");src.renameTo(dest);}
}

   上面就是一些常用File类里面函数的用法,并且每个代码旁边有注释可以去看看。

2.InputStream和 OutputStream

 InputStream和 OutputStream是以字节为单位进行读写,一次最少读写一个字节,而Reader和Writer是以字符单位进行读写。(这几个类的使用非常相似,会用一个,其他也就会了)

 1. InputStream简单用法

public class IODemo7 {public static void main(String[] args) throws IOException {try (InputStream inputStream = new FileInputStream("./test.txt")){while(true){byte[] buffer = new byte[1024];int n = inputStream.read(buffer);if(n == -1){break;}for(int i = 0; i < n; i++){System.out.printf("%x ", buffer[i]);}}}}
}

   这里使用的是try-with,它会自动在我们使用完这个对象自动释放,避免了程序猿忘记释放而导致出现大问题。

2. OutputStream简单用法 

public class IODemo9 {public static void main(String[] args) {// 如果后面不跟true 下次打开就会重置里面的,如果跟了true只会在后面增加// 以字节为单位惊醒读写,一次最少读写一个字节try(OutputStream outputStream = new FileOutputStream("./test.txt",true)){byte[] buffer = new byte[]{97,98,99,100};outputStream.write(buffer);} catch (IOException e) {throw new RuntimeException(e);}}
}

   这里注意了后面加了一个true,加了跟没加有很大的区别,加上true的话打开该文本是不会把之前的给清空,继续往上面增加,加不加true,也是看场景是否需要而加上的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416037.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1月下半笔记(个人向)

最近才开始看d2l&#xff08;这种东西早该在两年前看的&#xff0c;拖到现在了&#xff09; 为了做项目还得学一手OpenGL&#xff08;被windows安装GLFW逼疯了&#xff09; 1.15 打完ICPC EC final回来&#xff0c;也许可以出一篇博客写下简单的题解。 对蛋白质相似空间子结…

23款奔驰C260L升级香氛负离子 车载香薰

奔驰原厂香氛系统激活原车自带系统&#xff0c;将香气加藏储物盒中&#xff0c;通过系统调节与出风口相结合&#xff0c;再将香味传达至整个车厢&#xff0c;达到净化车厢空气的效果&#xff0c;让整个车厢更加绿色健康&#xff0c;清新淡雅。 星骏汇小许Xjh15863 产品功能&a…

爱普生L3150新更换废墨垫还是不能使用,如何对它进行废墨清零操作

环境&#xff1a; 爱普生L3150 Win10 专业版 废墨清零软件Resetter 问题描述&#xff1a; 爱普生L3150新更换废墨垫还是不能使用&#xff0c;如何对它进行废墨清零操作 打印机右后方更换了全新的废墨垫&#xff0c;还是告警闪灯用不了&#xff0c;需要进行废墨清零操作 解…

【数据结构二】链表和LinkedList详解

目录 链表和LinkedList 1.链表的实现 2.LinkedList的使用 3.ArrayList和LinkedList的区别 4.链表OJ题训练 链表和LinkedList 当 在 ArrayList 任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往前或者往后 搬移&#xff0c;时间复杂度为 O(n) &#xff0c;效率…

软件测试|sqlalchemy一对一关系详解

简介 SQLAlchemy 是一个强大的 Python ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它允许我们将数据库表映射到 Python 对象&#xff0c;并提供了丰富的关系模型来处理不同类型的关系&#xff0c;包括一对一关系。在本文中&#xff0c;我们将深入探讨 SQLAlchemy …

【Linux 命令】tree 对目录进行树形展示

目录 1、tree 命令功能展示 2、tree 命令安装 3、tree 命令语法及其参数功能 4、终止 tree 展开树命令 1、tree 命令功能展示 在 Linux 中&#xff0c;我们使用 ll 命令对目录的展示并不太方便我们查看&#xff0c;不太清晰明了&#xff0c;所以我们可以使用 tree 命令以…

JavaScript的代码执行顺序

&#xff08;1&#xff09;. js的执行顺序&#xff0c;先同步后异步 &#xff08;2&#xff09;. 异步中任务队列的执行顺序&#xff1a; 先微任务microtask队列&#xff0c;再宏任务macrotask队列 注意&#xff0c;按顺序从上到下时&#xff0c;没有轮到执行的任务会进入相应…

Spring Boot Aop 执行顺序

Spring Boot Aop 执行顺序 1. 概述 在 spring boot 项目中&#xff0c;使用 aop 增强&#xff0c;不仅可以很优雅地扩展功能&#xff0c;还可以让一写多用&#xff0c;避免写重复代码&#xff0c;例如&#xff1a;记录接口耗时&#xff0c;记录接口日志&#xff0c;接口权限&…

LeetCode、162. 寻找峰值【中等,最大值、二分】

文章目录 前言LeetCode、162. 寻找峰值【中等&#xff0c;最大值、二分】题目及类型思路及代码思路1&#xff1a;二分思路2&#xff1a;寻找最大值 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿…

链表的分割

链表的分割 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/partition-list-lcc…

LeetCode讲解篇之2280. 表示一个折线图的最少线段数

文章目录 题目描述题解思路题解代码 题目描述 题解思路 折线图中如果连续的线段共线&#xff0c;那么我们可以可以将其合并成一条线段 首先将坐标点按照横坐标升序排序 然后遍历数组 我们可以通过计算前一个线段的斜率和当前线段的斜率来判断是否共线 如果二者相等&#x…

【车载开发系列】Autosar DCM诊断管理模块

【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块一. DCM模块概念二. DCM模块与Autosar其他模块关系1&#xff09;Dcm和PduR的交互2&#xff09;Dcm和ComM模块的交互3&#xff09;Dcm和Dem的交互4&a…