IO的基础部分析
io流操作磁盘
public class DirectoryDemo {
public static void main(String[] args) {
File file = new File("e://a/b/c");
// 单级别目录
// 建立文件夹
// System.out.println(file.mkdir());
// 多级别目录
// 建立多级文件夹
// System.out.println(file.mkdirs());
// 文件夹是否存在
// System.out.println(file.exists());
// 是否为目录
// System.out.println(file.isDirectory());
// 作用是获得父目录
// System.out.println(file.getParentFile());
// 作用是获得父目录的名字
// System.out.println(file.getParentFile().getName());
// d盘目录下面的所有文件
// File file1 = new File("d:/");
// String[] arr = file1.list();
// for (String s : arr) {
// System.out.println(s);
//
// }
// d盘目录下面的路径+文件名
File file1 = new File("d:/");
File[] arr= file1.listFiles();
for (File s : arr) {
System.out.println(s);
}
}
}
public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("d://aa.txt");
// 如果文件存在返回false, 如果文件不存在返回true并进行创建
System.out.println(file.createNewFile());
// 删除文件
// System.out.println(file.delete());
// 判断文件是否存在
System.out.println(file.exists());
// 获得文件的名字
System.out.println(file.getName());
// 获得文件的绝对路径
System.out.println(file.getAbsolutePath());
// 判断是否是一个文件
System.out.println(file.isFile());
// 判断文件是否隐藏
System.out.println(file.isHidden());
}
}
什么是流
Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。
图片传不上去自己去搜一张吧!
字节流
它通常用来处理二进制数据。Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流。InputStream类与OutputStream类均为抽象类,我们在实际使用中通常使用Java类库中提供的它们的一系列子类。
字符流
它通常用来处理文本数据。所谓Unicode码元,也就是一个Unicode代码单元(大小2字节),范围是0x0000~0xFFFF。在以上范围内的每个数字都与一个字符相对应,Java中的String类型默认就把字符以Unicode规则编码而后存储在内存中。然而与存储在内存中不同,存储在磁盘上的数据通常有着各种各样的编码方式。使用不同的编码方式,相同的字符会有不同的二进制表示。实际上字符流是这样工作的:
- 输出字符流:把要写入文件的字符序列(实际上是Unicode码元序列)转为指定编码方式下的字节序列,然后再写入到文件中;
- 输入字符流:把要读取的字节序列按指定编码方式解码为相应字符序列(实际上是Unicode码元序列从)从而可以存在内存中。
码方式下的字节序列,然后再写入到文件中;
- 输入字符流:把要读取的字节序列按指定编码方式解码为相应字符序列(实际上是Unicode码元序列从)从而可以存在内存中。