深入理解JAVA I/O系列一:File

栏目: Java · 发布时间: 6年前

内容简介:深入理解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


以上所述就是小编给大家介绍的《深入理解JAVA I/O系列一:File》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Building Websites with Joomla!

Building Websites with Joomla!

H Graf / Packt Publishing / 2006-01-20 / USD 44.99

This book is a fast paced tutorial to creating a website using Joomla!. If you've never used Joomla!, or even any web content management system before, then this book will walk you through each step i......一起来看看 《Building Websites with Joomla!》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具