文章目录
文件
//测试:
/*
(高级)获取功能
1、public File[] listFiles():返回指定File目录下的文件和文件夹的绝对路径形式的File对象数组
2、public File getAbsolutePath():获取File对象表示的抽象文件的绝对路径
3、public String getPath()
4、public String getName():获取File对象表示的文件或者目录的文件名
判断功能
1、public boolean isFile():判断File对象表示的是否是一个文件
2、public boolean isDirectory():判断File对象表示的是否是一个目录
3、
*/
public class Demo7 {
public static void main(String[] args) {
File file = new File("C:\\123\\test");
File[] files = file.listFiles();//绝对路径形式的File对象数组
for (File file1: files){
System.out.println(file1.getName());
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());//文件的绝对路径
}
System.out.println(files[0].getName());
}
}
IO概述
常用基类
字节流的抽象基类
InputStream 字节输入流、
OutputStream 字节输出流
字符流的抽象基类
Reader 字符输入流
Writer 字符输出流
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。 [xxxx]InputStream
如:Reader的子类FileReader [xxxx]Reader
字节流
OutputStream有很多子类,其中FileOutputStream类,即文件输出流,用来将数据写入File的输出流。
字符流
Reader的3个具体子类
InputStreamReader
构造方法2个
public InputStreamReader(InputStream in)创建一个使用 默认字符集 的 InputStreamReader。
public InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的 InputStreamReader。
FileReader
构造方法
public FileReader(String fileName)创建使用默认字符集的字符输入流,从指定文件中读取字符数据
BufferedReader
构造方法
BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流。
作业中
InputStreamReader reader = new InputStreamReader(new FileInputStream("C:\\123\\day022.txt"));
FileReader reader = new FileReader("C:\\123\\day022.txt");
BufferedReader reader = new BufferedReader(new FileReader("C:\\123\\day022.txt"));
BufferedReader reader = new BufferedReader(new FileReader(“C:\123\day022.txt”));
3个read方法
int read()读取单个字符。如果已到达流的末尾,则返回 -1
int read(char[] cbuf)将字符读入数组。读取的字符数,如果已到达流的末尾,则返回 -1
int read(char[] cbuf, int off, int len)将字符读入数组的某一部分。
带缓冲区,建议flush()
1、转换流
Writer子类OutputStreamWriter(转换输出流):
构造方法:
OutputStreamWriter(OutputStream out) :创建使用默认字符编码的 OutputStreamWriter
OutputStreamWriter(OutputStream out, String charsetName) :创建使用指定字符集的 OutputStreamWriter
Reader子类InputStreamReader(转换输入流):
构造方法:
InputStreamReader(InputStream in) :创建一个使用默认字符集的 InputStreamReader
InputStreamReader(InputStream in, String charsetName) :创建使用指定字符集的 InputStreamReader
用字符流输入和输出(复制)(传入底层的字节流)
复制文本文件 .txt
复制图片
复制视频
在这里插入代码片
2、简化流(转化流的简化)
FileWriter构造方法2个
public FileWriter(String fileName)
public FileWriter(String fileName, boolean append)
FileReader构造方法2个
public FileReader(String fileName)
public FileReader(File file)
示例:
FileWriter fileWriter = new FileWriter("a.txt");
FileWriter fileWriter1 = new FileWriter("a.txt", true);
fileWriter.write("还在奢求什么");
//
fileWriter.flush();
fileWriter.close();
转化流InputStreamReader与简化流FileReader的对比
转化流用起来比较麻烦。
简化流不可以指定字符集,只能用默认的字符集UTF-8。
3、缓冲流buffer(缓冲字符输入输出流)
两个特有的方法:
BufferedWriter
void newLine() 写入一个行分隔符
BufferedReader
String readLine() 读取一个文本行: 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null(注意)
默认的缓冲区大小16KB
转化流 InputStreamReader
简化流FileWriter
缓冲流BufferedReader 特有的方法 缓冲区大小16B
5个write方法
转化流InputStreamReader
简化流FileWriter
缓冲流BufferedReader 特有的方法 缓冲区大小16B
5个write方法
字符流不可以用来传输图片、视频