目录
文件流:文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。
一、Flie:
-
java.io.file用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。
-
File类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。
-
构造器:
-
File(String pathName)
-
通过将给定路径名字符串转换成抽象路径名来创建一个新 File实例
-
抽象路径应尽量使用相对路径,并且目录的层级分隔符不要直接写" / "或" \ ",应使用File.separator这个常量表示,以避免不同系统带来的差异。
-
File表示文件信息
-
String getName():返回当前File对象表示的文件或目录的名字
-
-length():返回一个long值,表示占用的磁盘空间,单位为字节。
//创建file对象 File file = new File("./demo.txt"); //获取名字 String name = file.getName(); System.out.println(name); //获取File表示的文件的长度(单位是字节) long len = file.length(); System.out.println("占用的字节数:"+len);
-
-canRead():File表示的文件或目录是否可读
-
-canWrite():File表示的文件或目录是否可写
-
-isHidden():File表示的文件或目录是否为隐藏的
boolean cr = file.canRead(); boolean cw = file.canWrite(); boolean ih = file.isHidden(); System.out.println("可读:"+cr); System.out.println("可写:"+cw); System.out.println("是否隐藏:"+ih);
-
-exists():判断File表示的文件或目录是否真实存在。true:存在 false:不存在
-
-createNewFile():创建一个新文件,如果指定的文件所在的目录不存在会抛出异常java.io.FileNotFoundException
-
-delete():删除当前File对象表示的文件
-
-mkdir() / -mkdirs():创建一个目录 多个目录:并且会将所有不存在的父目录一同创建出来,推荐使用。
package file; import java.io.File; /** * 创建一个目录/多级目录 */ public class MkDirDemo { public static void main(String[] args) { //在当前项目目录下新建一个名为:demo的目录 File dir = new File("demo"); /* boolean exists() 判断当前File对象表示的文件或目录是否已经存在,如果已经存在则返回true boolean mkdir() 将当前File对象表示的目录创建出来,当且仅当目录成功创建时返回true */ if(!dir.exists()) { dir.mkdir(); System.out.println("该目录已创建"); }else{ System.out.println("该目录已存在"); } //在当前目录下新建:a/b/c/d/e/f目录 //当前dir表达式的是f目录,只不过f是在前面对应的里面 File dir = new File("a/b/c/d/e/f"); if(dir.exists()){ System.out.println("该目录已存在!"); }else{ /* 创建失败 原因:mkdir()方法在创建目录时要求该目录所在的父目录必须真实存在 否则创建失败 */ //dir.mkdir(); /* mkdirs()方法在创建目录时会自动将不存在的父目录一同创建出来 实际开发中推荐用这个方法创建目录 */ dir.mkdirs(); System.out.println("该目录已创建!"); } }
-
-listFiles():获取File表示的目录中的所有子项
-
-listFiles(FileFilter filter):获取File表示的目录中满足filter过滤器要求的所有子项
-
-isFile():判断当前File表示的是否为一个文件。
-
-isDirectory():判断当前File表示的是否为一个目录
二、IO:
-
输入:Input
-
输入是一个从外界进去到程序的方向,"读取"外界数据室,使用输入------输入是用来读取数据的
-
-
输出:Output
-
输出是一个从外界进去到程序的方向,"写出"外界数据室,使用输出------输出是用来写出数据的
-
InputStream与OutputStream
-
java.io.InputStream:所有的字节输入流的超类,其中定义类读取数据的方法,因此将来不管读取的是什么设备(链接该设备的流)都有这些读取的方法 因此我们可以用相同的方法读取不同设备中的数据
int read():读取一个字节,以int形式返回,该int值的”低八位”有效,若返回值为-1则表示EOF
int read(byte[ ] data):尝试最多读取给定数组的length个字节并存入该数组,返回值为实际读取到的字节量
-
java.io.OutputStraeam:所有字节输出流的超类,其中定义了写出数据的方法
void write(int d):写出一个字节,写的事给定的int的"低八位"
void write(byte[ ] data):将给定的字节数组中的鄋字节全部写出
void write(byte[ ] data,int offset,int len):将给定的字节数组中从offset处开始的连续len个字节写出
文件流:文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。
-
文件输入流java.io.FileInputStream:读取文件数据的流
-
文件输出流java.io.FileOutputStream:写入文件数据的流
-
文件流是继承自InputStream和OutputStream
文件输出流:
java.io.FileOutputStream 使用文件输出流向文件中写入数据
构造器:
FileOutputStream(String path) 创建文件输出流对指定的path路径表示的文件进行写操作,如果该文件不存在则将其创建出来
FileOutputStream(File file) 创建文件输出流对指定的file对象表示的文件进行写操作,如果该文件不存在则将其创建出来
新学java能力有限,如有错误欢迎指正哟