java由数据流处理输入/输出(I/O)模式,其中,输入流是指打开一个从某数据源到程序的流,并且从这个流中读取数据。输出 流是为了将程序中的数据传输到某个目的地,在传输过程中,需要讲数据写入这个流中。
从本质上讲,输入流用来读取数据,输出流用来写入数据。
1.输入流
输入流抽象类包括两种,分别是InputStream字节输入流和Reader字符输入流。
1.1、InputStream类是字节输入流的抽象类,是所有字节输入流的父类。
InputStream类中所有方法遇到错误时都会引发IOException异常。
1.2、Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。
2.输出流
输出流抽象类包括两种,分别是OutputStream自己数出来和Writer字符输出流。
2.1、OutputStream类是字节数出来的抽象类,此抽象类是表示输出字节流的所有类的超类。
2.2、Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。
File类是java.io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。
File类的静态字段:
import java.io.File; /* *File类的静态字段 * static String pathSeparator:代表当前操作系统的路径分隔符,pathSeparator是以字符串的形式表示 例如:当前widows系统路径分隔符";" static char pathSeparatorChar:代表当前操作系统的路径分隔符,pathSeparatorChar是以字符的形式表示 例如:当前widows系统路径分隔符';' static String separator:代表当前操作系统的名称分隔符 separator是以字符串的形式表示 例如:当前widows名称分隔符"\\" static char separatorChar:代表当前操作系统的名称分隔符 separator是以字符的形式表示 例如:当前widows名称分隔符'\\' * */ public class Demo02 { public static void main(String[] args) { System.out.println(File.pathSeparator);//";"代表当前操作系统中的路径分隔符 System.out.println(File.pathSeparatorChar);//';'//字符类型;不同的操作系统执行这段代码,打印出来的而结果不同 //因为不同操作系统的路径分隔符不同,说明java跨平台 //"c:\1.txt"+File.pathSeparator+"d:\a.doc" System.out.println(File.separator);// "\" 代表路径中的名称分隔符 //widnows在路径中以\(反斜杠)来分隔名称 //d:\abc\1.txt System.out.println(File.separatorChar);//'\' System.out.println("\\"); //两个\\代表一个普通的\字符 } }
相对路径与绝对路径:
路径: 绝对路径: 文件或文件夹的路径中以盘符开头就是绝对路径(唯一路径) 例如:D:\1.txt E:\abc\2.txt 相对路径:eclipse下参照物就是当前工程 其中一个文件与另外一个文件相对关系,一定会有一个参照物 day22工程绝对路径: F:\JavaBaseCourse\JavaSEProject\day22 1.txt的绝对路径 F:\JavaBaseCourse\JavaSEProject\day22\1.txt 1.txt的相对路径: 参照的物路径不用在写 1.txt 2.txt的相对路径 参照物绝对路径:F:\JavaBaseCourse\JavaSEProject\day22 2.txt的绝对路径:F:\JavaBaseCourse\JavaSEProject\day22\src\2.txt 2.txt的相对路径:src\2.txt