Java IO(一)
在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(一)的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- Java IO之字符流和文件
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...
- java Io流向指定文件输入内容
package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String ...
- java Io文件输入输出流 复制文件
package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- java Io流更新文件内容
package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOut ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java.io.NotSerializableException: test.io.file.Student
java.io.NotSerializableException: test.io.file.Student at java.io.ObjectOutputStream.writeObject0 ...
- java.io.IOException: mark/reset not supported
java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
随机推荐
- Vue中的v-cloak用法
v-cloak 的作用和用法 用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Must ...
- Java8学习(4)-Stream流
Stream和Collection的区别是什么 流和集合的区别是什么? 粗略地说, 集合和流之间的差异就在于什么时候进行计算.集合是一个内存中的数据结构,它包含数据结构中目前所有的值--集合中的每个元 ...
- 在linux环境下安装JDK并配置环境变量
操作步骤如下 1.根据linux服务器的系统版本在官网下载相应linux版本JDK(32位下载x86,64位下载x64) 2.通过远程连接工具(filezilla)将下载好的JDK上传至linux服务 ...
- Beta总结篇
45°炸 031502601 蔡鸿杰 031502604 陈甘霖 031502632 伍晨薇 一.项目预期进展及现实进展 项目预期计划 现实进展 Github使用 √ 日拍 (调用相机.相册) √ 足 ...
- Alpha冲刺第一天
Alpha冲刺第一天 站立式会议 项目进展 项目的第一天,主要工作是对项目的开发进行规划,以及将规划的成果转化为燃尽图与博客文章.依据项目需求分析报告与开题报告中已经完成的设计任务和项目规划,我们将系 ...
- 服务器数据恢复_Linux网站服务器故障数据恢复案例
[数据恢复故障描述] 一台linux网站服务器,DELL R200,管理约50个左右网站,使用一块SATA 160GB硬盘.正常使用中突然宕机,尝试再次启动失败,将硬盘拆下检测时发现存在约100个坏扇 ...
- JAVA_SE基础——8.基本数据类型
基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...
- Linux CentOS7.0 (03)安装验证 docker
一.安装docker 1.升级 Linux 的软件包和内核 sudo yum update 2.安装 docker (1) sudo yum install docker (2).验证docker安 ...
- Angular 学习笔记 ( CDK - Accessibility )
@angular/ckd 是 ng 对于 ui 组建的基础架构. 是由 material 团队开发与维护的, 之所以会有 cdk 看样子是因为在开发 material 的时候随便抽象一个层次出来给大家 ...
- SpringCloud的EurekaClient : 客户端应用访问注册的微服务(有断路器场景)
演示客户端应用如何访问注册在EurekaServer里的微服务 一.概念和定义 采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,2. ...