深入理解JAVA I/O系列一:File_java file用法
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类的一些常用方法,首先来看下一些重要的概念:
1、一个File类的对象,表示磁盘上的文件或目录。
2、File提供了与平台无关的方法来对磁盘上的文件或目录进行操作。
3、File类直接处理文件和文件系统。
4、File类没有指定信息怎样从文件读取或向文件存储。
1 package io;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 public class FileTest
7 {
8 public static void main(String[] args) throws IOException
9 {
10 File file = new File("f:/migu");
11 file.mkdir;
12 //判断该抽象名表示的目录是否存在
13 if(file.exists && file.isDirectory)
14 {
15 System.out.println("migu 目录存在");
16 File file1 = new File("f:/migu/UES.txt");
17 File file2 = new File("f:\\migu\\CMU.txt");
18 //创建文件
19 file1.createNewFile;
20 file2.createNewFile;
21 File file3 = new File("f:/migu/插件/支付中心");
22 //创建此抽象名表示的目录,以及所有必需但是不存在的父目录
23 file3.mkdirs;
24 File files = file.listFiles;
25 //该方法返回该路径下这一层的所有文件和目录
26 for(File f : files)
27 {
28 System.out.println("migu目录下的文件名:" + f.getName);
29 System.out.println("migu目录文件的绝对路径:" + f.getAbsolutePath);
30 }
31 }
32 else
33 {
34 System.out.println("migu 目录不存在");
35 }
36
37 }
38 }执行结果:
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中表示是转义符。所以用“\\”代表“\”。在这里我的建议是尽量都写成“/”,因为在所有的操作系统中“/”永远都是没有问题的。
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
