本课目标
了解输入输出的概念
使用 File类操作文件或目录
理解流的概念及分类
会使用字节流读写文本文件
一、Java I/O
二、文件(File)类
1.文件:相关记录或放在一起的数据的集合
2.Java程序如何访问文件属性?
JAVA API:java.io.File类
3.File 类访问文件属性
4.File 类的常用方法
public class StudentFile {
public static void main(String[] args) throws IOException {
//创建文件对象
File studentFile = new File("files/studentInfo.txt");
//判断文件是否存在 exists()
System.out.println("文件或目录是否存在?\t" + studentFile.exists());
//判断是否是文件 isFile()
System.out.println("是否是文件?\t" + studentFile.isFile());
//判断是否是目录 isDirectory()
System.out.println("是否是目录?\t" + studentFile.isDirectory());
//查找文件的相对路径 getPath()
System.out.println("表示文件的相对路径:" + studentFile.getPath());
//查找文件的绝对路径 getAbsolutePath()
System.out.println("表示文件的绝对路径:" + studentFile.getAbsolutePath());
//查找文件名称 getName()
System.out.println("文件或目录的名称:" + studentFile.getName());
//文件大小 length()
System.out.println("文件的长度:" + studentFile.length());
//删除文件,并判断删除之后是否还存在
System.out.println("删除文件:" + studentFile.delete());
if (!studentFile.exists()) {
System.out.println("该文件已删除");
}else {
System.out.println("删除失败");
}
System.out.println("删除后该文件是否还存在?\t" + studentFile.exists());
//重新创建文件,此时创建的文件是空文件
try {
System.out.println("重新创建studentInfo.txt文件:" + studentFile.createNewFile());
}catch (IOException e){
e.printStackTrace();
}
System.out.println();
//创建文件 kd50.txt ,创建的文件为空文件
File kd50File = new File("files/kd50.txt");
if (!kd50File.exists()) {
//kd50File.mkdir();//创建文件夹
kd50File.mkdirs();//级联创建文件夹
}
System.out.println("新文件夹kd50是否创建成功:" + kd50File.exists());
System.out.println();
File newFile = new File("file/kgc/kd50/wang/txt");
if (!newFile.exists()) {
newFile.mkdirs();//级联创建文件夹
}
System.out.println("新文件wang是否创建成功:" + newFile.exists());
System.out.println("新文件的大小:" + newFile.length());
System.out.println();
}
}
三、流
1.可以通过流来读写文件
2.输入/输出流与数据源
3.Java流的分类
4.FileInputStream 字节输入流,用于从文件中读取字节数据
InputStream类常用方法
- int read()
- int read(byte[] b)
- int read(byte [] b , int off , int len)
- void close( )
- int available():可以从输入流中读取的字节数目
子类 FileInputStream 常用的构造方法
- FileInputStream(File file)
- FileInputStream(String name)
使用 FileInputStream 读文本文件的步骤
5.FileOutputStream 字节输出流 用于向文件中写入字节数据
OutputStream 类常用方法
- void write (int c)
- void write(byte[] buf)
- void write(byte[] b,int off,int len)
- void close()
- void flush():强制把缓冲区的数据写到输出流中
子类 FileOutputStream 常用的构造方法
- FileOutputStream (File file)
- FileOutputStream(String name)
- FileOutputStream(String name,boolean append)
使用 FileOutputStream 写文本文件的步骤
public class MyFileInput {
public static void main(String[] args) throws FileNotFoundException {
FileInputStream fis = null;
try {
fis = new FileInputStream("files/studentinfo.txt");
//读取内容
int read;
while ((read= fis.read())!= -1) {
System.out.print((char)read);
}
System.out.println();
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}