内容简介:深入理解JAVA I/O系列一:File
点击上方“ Java知音 ”,选择“置顶公众号”
技术文章第一时间送达!
bug没地儿问? 公众号内回复“加群”,邀你加入微信技术学习群,共同学习!
I/O简介
I/O问题可以说是当今web应用中所面临的的主要问题之一,大部分的web应用系统的瓶颈都是I/O瓶颈。这个系列主要介绍 JAVA 的I/O类库基本架构、磁盘I/O工作机制、网络I/O工作机制以及NIO的工作方式。
从1.4版本开始JAVA引入了NIO,用来提升I/O性能。I/O操作类在包java.io下,大概有将近80个类,这些类可以分为如下四组:
-
基于字节操作的I/O接口:InputStream和OutputStream
-
基于字符操作的I/O接口:Reader和Writer
-
基于磁盘操作的I/O接口:File
-
基于网络操作的I/O接口:Socket
从字面意思理解,前两组主要是传输数据的格式,后两组是传输数据的方式。虽然Socket类并不在java.io包下,但是我们仍然将其归类在一起来讨论。因为我个人认为I/O的核心问题要么是数据格式影响I/O操作,要么是传输方式影响I/O操作。最终的问题也就是将什么样的数据写到什么地方的问题。
File类
本篇文章主要介绍File类的一些常用方法,首先来看下一些重要的概念:
-
一个File类的对象,表示磁盘上的文件或目录。
-
File提供了与平台无关的方法来对磁盘上的文件或目录进行操作。
-
File类直接处理文件和文件系统。
-
File类没有指定信息怎样从文件读取或向文件存储。
package io; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { File file = new File("f:/migu"); file.mkdir(); //判断该抽象名表示的目录是否存在 if(file.exists() && file.isDirectory()) { System.out.println("migu 目录存在"); File file1 = new File("f:/migu/UES.txt"); File file2 = new File("f:\\migu\\CMU.txt"); //创建文件 file1.createNewFile(); file2.createNewFile(); File file3 = new File("f:/migu/插件/支付中心"); //创建此抽象名表示的目录,以及所有必需但是不存在的父目录 file3.mkdirs(); File[] files = file.listFiles(); //该方法返回该路径下这一层的所有文件和目录 for(File f : files) { System.out.println("migu目录下的文件名:" + f.getName()); System.out.println("migu目录文件的绝对路径:" + f.getAbsolutePath()); } } else { System.out.println("migu 目录不存在"); } } }
执行结果:
migu 目录存在 migu目录下的文件名:CMU.txt migu目录文件的绝对路径:f:\migu\CMU.txt migu目录下的文件名:UES.txt migu目录文件的绝对路径:f:\migu\UES.txt migu目录下的文件名:插件 migu目录文件的绝对路径:f:\migu\插件
这个DEMO展示的跟File类相关的方法都是简单易懂的,其中有两个地方需要强调下:
1、mkdirs是创建抽象名表示的文件或者目录,并且还会创建该目录或者文件的所有不存在的父目录。
2、在16、17行,我这里用了两种不同的路径分割符来表示抽象路径,从运行结果来看都是可行的。那么两者有什么区别呢?
不同操作系统下文件分隔符:windows中是“\”,linux中是“/”,在用JAVA代码去读取windows系统中磁盘上的文件时候,若要用“\”,必须写成“\\”,因为一个"\"在java中表示是转义符。所以用“\\”代表“\”。 在这里我的建议是尽量都写成“/”,因为在所有的操作系统中“/”永远都是没有问题的。
推荐
技术文章:Java中的 设计模式 小结
源码分享:Javaweb练手项目下载
-
作者:冬瓜蔡
-
原文:http://www.cnblogs.com/dongguacai/p/5656471.html
以上所述就是小编给大家介绍的《深入理解JAVA I/O系列一:File》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【1】JavaScript 基础深入——数据类型深入理解与总结
- 深入理解java虚拟机(1) -- 理解HotSpot内存区域
- 深入理解 HTTPS
- 深入理解 HTTPS
- 深入理解 SecurityConfigurer
- 深入理解 HTTP 协议
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
淘宝、天猫电商运营百科全书
刘涛 / 电子工业出版社 / 2016-7 / 59.00元
有人说淘宝、天猫上90%的卖家不赚钱,我认为说得有点大了。因为如果说大家都不赚钱或者在亏钱,为什么去年在做店铺的卖家,今年还在继续?那些不赚钱的卖家,多数是没意识到市场的变化,还在用原来的套路运营店铺。市场在变,但卖家的思路却没有转变,不赚钱也在情理之中,因为淘宝、天猫的玩法变了。做店铺就是好比一场“打怪”升级的游戏,每次的升级都需要强大的装备与攻略。优胜劣汰,能活下去并且能赚钱的卖家,都是在不停......一起来看看 《淘宝、天猫电商运营百科全书》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
JSON 在线解析
在线 JSON 格式化工具