在Java中,所有的io类都放在java.io包中。

  在IO操作中,我们总是会从一个源数据读取到一个目标数据。那么这个源数据和目标数据可以是文件,流等等。那最常见的就是文件,就像我们在本地电脑上写入东西一样,写入到一个文件中。在java中操作文件,就不得不提到一个File类。

File

  File类在整个IO包中是一个独立的类,主要完成一些对文件的操作。表示文件和目录路径名的抽象表示形式。

此类的定义如下:

  public class File extends Object implements Serializable,Comparable<File>

  需要注意的是,File类的实例是不可改变的。也就是说,一旦创建,File对象表示的抽象路径名将永不改变。

该类中的字段:

1, static String pathSeparator 表示与系统有关的路径分隔符,表示为一个字符串
2, static char pathSeparatorChar 表示与系统有关的路径分隔符
3, static String separator 表示与系统有关的额默认名称分隔符,表示为一个字符串
4 static char separatorChar 表示与系统有关的默认名称分隔符

下面我们通过一个实例来看看这些字段究竟是什么:

package com.fuwh.file;

import java.io.File;

public class FileTest01 {
public static void main(String[] args) { System.out.println("pathSeparator:"+File.pathSeparator);
System.out.println("pathSeparatorChar:"+File.pathSeparatorChar);
System.out.println("separator:"+File.separator);
System.out.println("separatorChar:"+File.separatorChar);
}
}

  实际上,这些字符都是根据本地系统来取得的。比如说:separator在windows系统下为‘\’,但是在UNIX系统则为'/'。

因此,在实际的开发中我们建议使用File.separator的形式,因为这样可以提高代码的可移植性。

我们在来看看此类的构造方法:

File(File parent,String child) 根据parent抽象路径名和child路径名称字符串创建一个新File实例
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
File(String parent,String child) 根据parent路径名称字符串和child路径名称字符串创建一个新File实例
File(URI uri) 通过将给定的file:URI转换为一个抽象路径名来创建一个新的File实例

主要方法:

1. boolean createNewFile() 当且仅当不存在具有此抽象路径名指定的文件时,创建一个新的空文件
2. boolean delete() 删除此抽象路径名表示的文件或目录
3. boolean exists() 测试此抽象路径名表示的文件或目录是否存在
4. File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式
5. String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
6. String getName() 返回此抽象路径名表示的文件或目录的名称
7. String getParent() 返回此抽象路径名父母路的路径名字符串,如果没有父路径名则返回null
8. File getParentFile() 返回此抽象路径名父母路的抽象路径名,如果没有指定父目录则返回null
9. String getPath() 将此抽象路径名转换为一个路径名字符串
10. boolean isFile() 测试此抽象路径名指定的文件是否是一个标准文件
11. boolean isDirectory() 测试此抽象路径名指定的文件是否是一个目录
12. boolean isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件
13. String[] list() 返回一个字符串数组,这些字符串指向此抽象路径名表示的目录中的文件和目录
14. File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
15. boolean mkdir() 差un关键此抽象路径名指定的目录

实例:

package com.fuwh.file;
import java.io.File;
public class FileTest02 {
public static void main(String[] args) {
//在当前classpath下创建文件test.txt
File file=new File("test.txt");
String path=file.getAbsolutePath();
String parent=path.substring(0, path.lastIndexOf("\\"));
listAllFile(parent); }
static void listAllFile(String path){
File files[]=new File(path).listFiles();
System.out.println(files.length);
for(int i=0;i<files.length;i++){
if(files[i].isFile()){
System.out.println(files[i]);
}else{
if(files[i].isDirectory()){
listAllFile(files[i].getAbsolutePath());
}
}
}
}
}

Java IO(一)的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  3. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  4. java Io流向指定文件输入内容

    package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String ...

  5. java Io文件输入输出流 复制文件

    package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...

  6. java Io流更新文件内容

    package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOut ...

  7. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. java.io.NotSerializableException: test.io.file.Student

    java.io.NotSerializableException: test.io.file.Student    at java.io.ObjectOutputStream.writeObject0 ...

  9. java.io.IOException: mark/reset not supported

    java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...

  10. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

随机推荐

  1. 基于bootstrap的表格数据展示

    一.导入bootstrap文件 二.前端html代码 对应的是前台条件查询和js数据获取 js数据获取部分在第四段 三.后台数据 total为集合总数  int类型 rows为前台需要展示的数据集合 ...

  2. 巨人大哥谈Web应用中的Session(session详解)

    巨人大哥谈Web应用中的Session(session详解) 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. ...

  3. Alpha冲刺——Day1

    一.合照 二.项目燃尽图 三.项目进展 1.界面设计:图形界面部分完成 2.数据库设计:数据库设计基本完成 3.搭建基本服务器框架 github链接 四.明日规划 1.继续完成剩下的图形界面 2.An ...

  4. C语言的第二次作业

    一.PTA实验作业 题目1. 计算分段函数 本题目要求计算下列分段函数f(x)的值: 1.本题代码 #include<stdio.h> #include<math.h> int ...

  5. 小黄衫 Get

    小黄衫 Get .   十分荣幸在前四次作业中以微弱的3分之差拿到了第一,获得了本次的小黄衫. 先发点牢骚.. 讲道理,原本以为的研究生生涯应该就是埋在论文堆里度过的时候顺便上上课.当初选课的时候,学 ...

  6. Scrum 冲刺 第五日

    目录 要求 项目链接 燃尽图 问题 今日任务 明日计划 成员贡献量 要求 各个成员今日完成的任务(如果完成的任务为开发或测试任务,需给出对应的Github代码签入记录截图:如果完成的任务为调研任务,需 ...

  7. php析构方法

    析构方法说明: 1. 析构方法会自动调用 2. 析构方法主要用于销毁资源(比如释放数据库的链接,图片资源...销毁某个对象..); 析构函数会在到对象的所有的引用都被删除或者当对象被显示销毁时执行. ...

  8. JAVA_SE基础——59.权限访问修饰符

    了解了包的概念,就可以系统的介绍Java中的访问控制级别.在Java中,针对类.成员方法和属性提供了四种访问级别,分别是private.default.protected和public. 权限访问修饰 ...

  9. 作业三:模拟 mysql 进行增删改查

    # !/usr/bin/env python3 # _*_coding:utf-8_*_ def help_sql(cmd): if cmd in func_dic.keys(): print('{} ...

  10. 新概念英语(1-115)Knock! Knock!

    Lesson 115 Knock, knock! 敲敲门! Listen to the tape then answer this question. What does Jim have to dr ...