Io即in和out.
1.input:输入,把电脑硬盘上的文件(数据)读入到程序中
2.output:输出,把程序中的数据写出到目标地址中
io流的分类io流的分类主要有三种方式
1.按数据流的方向:输入流,输出流
2.按处理数据单位:字节流,字符流
3,按功能:节点流,处理流
io流对象 File类File类的对象,表示计算机硬盘上的一个文件和目录,它是用来操作文件的类,但不能操作文件中的数据.
File类的构造方法
```java
```java
File f = new File("D:/demo.pptx");//第一种
File f2 = new File("E:","Demo.txt");//第二种
File f3 = new File("E");
File f31 = new File(f3,"Demo.txt");//第三种
File类的常用方法
createNewFile() 若路径正确并且无目标文件,则会创建一个不可分的文件
delete() 删除此路径名表示的文件或目录。
exists() 判断此抽象路径名表示的文件或目录是否存在(返回布尔类型的)。
length() 返回由此路径名表示的文件的长度(根据文件内容的字节返回)。
mkdir() 创建此路径名指定的目录。
File f = new File("D:/demo.pptx");
System.out.println(f.canRead());//是否可读
System.out.println(f.canWrite());//是否可写
System.out.println(f.getPath());//得到文件路径
System.out.println(f.getName());//得到文件名称
System.out.println(f.length());//文件内容长度,以字节为单位
System.out.println(f.getParent());//得到文件的父级路径
System.out.println(f.isFile());//判断是否为文件
System.out.println(f.isDirectory());是否是目录
System.out.println(f.isAbsolute());//绝对路径.从盘符开始都是绝对路径
System.out.println(f.isHidden());//是否隐藏文件
System.out.println(f.exists());//是否存在
System.out.println(f.lastModified());//最后一次修改的时间
System.out.println(new Date(1639560787522L));
字节流
字节流又可以分为字节输入流和字节输出流,InputStream和OutputStream是字节流的两个抽象类,字节流的实现类基本都是继承这两个类
接下来,我们创建一个输入流对象
FileInputString in = new FileInputString("文件路径");
但是要特别注意的是,接入到指定的文件上,若找不到目标文件,则会报异常.
try {
in = new FileInputStream("D:/ddd.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
read()方法与write()方法
一.read()
read方法有两种用法
1.返回int类,表示上读到的哪一个字节,若文件内容读完则返回-1
2.返回int值,并且要创建一个数组,表示实际向数组中装入字节的个数
二.write()
每次输出一个byte数组个字节,从数组的指定位置开始(0),写出实际装入的个数个字节
代码实现
package lesson.InputOut12_16;
//read()第一种用法
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class InputOut {
public static void main(String[] args) {
FileInputStream in =null;
FileOutputStream out = null;
try {
in = new FileInputStream("D:/ddd.txt");
out = new FileOutputStream("D:/ddd1.txt");
int b = 0;
while ((b=in.read())!=-1){
System.out.println(b);
out.write(b);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException exception){
System.out.println("读写异常");
}finally {
try {
if ( out!=null){
out.close();
}
if ( in!=null){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package lesson.InputOut12_16;
//第二种read()方法
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class readByte {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("D:/ddd.txt");
FileOutputStream out = new FileOutputStream("D:/ddd1.txt");
byte [] bytes = new byte[10];
int size = 0;
while ((size=in.read(bytes))!=-1){
out.write(bytes,0,size);
System.out.println(Arrays.toString(bytes));
System.out.println(size);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}



