在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. DFA算法的简单说明!

    1.DFA算法简介 DFA全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号 ...

  2. web服务器学习2---httpd-2.4.29虚拟目录及访问控制

    一 创建虚拟目录 环境准备: 系统:CentOS 7.4 软件:httpd-2.4.29 1.编辑主配置文件,添加命令运行子配置文件 vi /usr/local/httpd/conf/httpd.co ...

  3. 记录python接口自动化测试--pycharm执行测试用例时需要使用的姿势(解决if __name__ == "__main__":里面的程序不生效的问题)(第三目)

    1.只运行某一条case 把光标移动到某一条case后面,然后右键,选择"Run..."来运行程序 此时,pycharm会只运行光标所在位置的这一条case 2.如果想执行全部ca ...

  4. 第1次作业:no blog no fun

    1.先回答老师的问题 第一部分:结缘计算机       读了进入2012 -- 回顾我走过的编程之路后,我试着回顾了我的编程生涯的开始.我最原始的记忆就是老爸教我用电脑玩连连看,那时候的显示器应该是C ...

  5. 听翁恺老师mooc笔记(5)--指针与数组

    如果我们通过函数的参数将一个数组传递到参数中去,那么在函数里接收到的是什么东西呢?我们知道如果传递一个普通变量,那么参数接收到的是值,如果传递一个指针变量,参数接收到的也是值,只不过这时的值是地址.那 ...

  6. Alpha第六天

    Alpha第六天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  7. C#中的函数式编程:递归与纯函数(二)

    在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential transparency)来定义的.如果一个 ...

  8. 九、Python发送QQ邮件(SMTP)

    看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 ...

  9. js常用API方法

    String对象常用的API:API指应用程序编程接口,实际上就是一些提前预设好的方法. charAt() 方法可返回指定位置的字符. stringObject.charAt(index) index ...

  10. URL编码和Base64编码 (转)

    我们经常会遇到所谓的URL编码(也叫百分号编码)和Base64编码.      先说一下Bsae64编码.BASE64编码是一种常用的将二进制数据转换为64个可打印字符的编码,常用于在通常处理文本数据 ...