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流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
随机推荐
- Java 并发基础——线程安全性
当线程安全:多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的. 在线程 ...
- Beta第四天
听说
- 201621123040《Java程序设计》第2周学习总结
1.本周学习总结 关键词:Java中的字符串与数组 c语言基本语法的迁移 相关总结:在一周的学习过程中,我自主学习Java的基本语法,前期的相关语法与c语言的基本语法相近,也算是做到了很好的回顾:在郑 ...
- 数据结构基础——结构体struct及类型别名typedef的使用
一.结构体的创建 在C语言中,实现数据结构的一种常用方法便是使用结构体(structure)其示例代码如下: struct stu { int num; char ch; }; struct表示创建结 ...
- PTA題目的處理(三)
题目7-1 高速公路超速處罰 1.實驗代碼 #include <stdio.h> //#include <stdlib.h> int main() { int csp,lsp; ...
- git(一)快速入门
1.设置用户名 git config --global user.name '你的用户名' 2.设置用户名邮箱 git config --global user.email '你的邮箱' 3. ...
- python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习
1.文件内容如下,标题为:姓名,性别,年纪,薪资 egon male 18 3000 alex male 38 30000 wupeiqi female 28 20000 yuanhao female ...
- Microsoft dynamic 批量更新
//批量处理 ExecuteMultipleRequest multipleRequest = new ExecuteMultipleRequest() { Settings = new Execut ...
- markdown最基本的几种语法
1.标题 # 相当于<h1></h1> ## 相当于<h2></h2> ### 相当于<h3></h3> #### 相当于< ...
- [phpvia/via] PHP多进程服务器模型中的惊群
[ 概述 ] 典型的多进程服务器模型是这样的,主进程绑定ip,监听port,fork几个子进程,子进程安装信号处理器,随后轮询资源描述符检查是否可读可写: 子进程的轮询又涉及到 IO复用,accept ...