在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. drbd(三):drbd的状态说明

    本文目录:1.drbd配置文件2.状态 2.1 连接状态(connect state,cs)和复制状态 2.2 角色状态(roles,ro) 2.3 磁盘状态(disk state,ds) 2.4 I ...

  2. TOJ 1214: 数据结构练习题――线性表操作

    描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元 ...

  3. TED - How To Get Better At The Things You Care About

    TED01 - How To Get Better At The Things You Care About 昨天我发布了攻克英语口语的宣言,今天就行动.TED是我们学习口语的好地方,本着学以致用的原 ...

  4. Archlinux下i3wm与urxvt的配置

    前段时间学习了GitHub的两位前辈:Airblader和wlh320.他们的相关教程在https://github.com/Airblader/i3和https://github.com/wlh32 ...

  5. vue.js下载及安装配置

    环境 Deepin15.4 下载及配置 node下载地址:http://nodejs.cn/download/ 解压到文件夹 /home/maskerk/vue/ 下 设置软连接: $ ln -s / ...

  6. 结合Socket实现DDoS攻击

    一.实验说明 1. 实验介绍 通过上一节实验的SYN泛洪攻击结合Socket实现DDoS攻击. 2. 开发环境 Ubuntu Linux Python 3.x版本 3. 知识点 本次实验将涉及以下知识 ...

  7. MySQL InnoDB锁机制

    概述: 锁机制在程序中是最常用的机制之一,当一个程序需要多线程并行访问同一资源时,为了避免一致性问题,通常采用锁机制来处理.在数据库的操作中也有相同的问题,当两个线程同时对一条数据进行操作,为了保证数 ...

  8. SSM框架中前端页面(AJAX+Jquery+spring mvc+bootstrap)

    前端新增页面的模态框,采用bootstarp建立.定义了empName,email,gender,depatName,四个属性的ID:其中保存按钮的ID:emp_save_btn,对应的点击函数如下: ...

  9. phalcon环境的搭建和dll扩展下载与选择

    phalcon需要下载一个扩展的dll文件才能运行项目 其中需要注意dll放在一个php扩展目录中windows下php/ext/,还需要在两个Php.ini文件中增加扩展说明,一般只需要更改 D:\ ...

  10. 70后.net老猿,尚能饭否?

    程序猿的大限 距离上一次主动找工作,快到5年了,到现在的东家,是差不多3年前猎头挖过来的,而当时东家刚刚被欧洲一家有百年历史的跨国企业集团收购,所以我也就有幸成了一名“外企员工”,但是集团保留原东家人 ...