IO

文件

//测试:
/*
(高级)获取功能
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方法

字符流不可以用来传输图片、视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lacrimosa&L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值