java中fill方法_fill类的方法以及IO流

IO流

File类

File类在java中表示(带路径的)文件或者目录。

File常用属性和方法

file.canread()   file.canWrite()  file.delete();

创建文件时会抛出检查时异常IOException

File的路径相关

绝对路径: file.getAbsolutePath();

如果file是相对路径,相对路径的当前路径是工程目录(java17)

目录的创建

public static void main(String[] args) {

File file = new File("d:\\javatest\\c\\d\\e");

if(!file.exists()) {

boolean r;

try {

// 一次只能创建一个目录

// r = file.mkdir();

r = file.mkdirs();

if(r) {

System.out.println("目录创建成功");

}

} catch (Exception e) {

e.printStackTrace();

}

}

目录的遍历

list():返回一个file表示的目录中的子目录或者文件,字符串数组类型

listFiles():返回一个file表示的目录中的子目录或者文件,File数组类型

public static void main(String[] args) {

// 需求:遍历d:\javatest目录

// list()

File file =  new File("d:\\javatest");

/*

String[] list = file.list();

for (String str : list) {

System.out.print(str);

File f = new File(file.getPath()+"\\"+str);

if(f.isDirectory()) {

System.out.println(" 目录");

}else {

System.out.println(" 文件");

}

}*/

// listFiles();

File[] listFiles = file.listFiles();

for (File f : listFiles) {

System.out.print(f.getName());

if(f.isDirectory()) {

System.out.println(" 目录");

}else {

System.out.println(" 文件");

}

}

}

流(stream):流是一连串流动的数据(字节、字符),以先进先出的方式发送的信息的通道中

输入流和输出流

输入流

数据从源数据源流入程序的过程称为输入流。可以理解为从源数据源读取数据到程序的过程

输出流

数据从程序流出到目的地的过程称为输出流。可以理解为把数据从程序写入目的地的过程

数据源一般指提供数据的原始媒介,一般常见有文件、数据库、云端、其他硬件等能提供数据的媒介。

流的分类

按照流向分为输入流和输出流

按照处理单元分为字节流和字符流

按照功能分为节点流和转换流。

4bbc2e4dfe8f8655241a33c118a1d082.png

1.1 InputStream/OutputStream

InputStream 是所有字节输入流的抽象父类,提供了

read 读取一个字节

read(byte[] buf) 读取一定量的字节到缓冲区数组 buf中。

OutputStream 是所有字节输出流的抽象父类,提供了

write() 写入一个字节

write(byte[] buf) 写入一定量的字节到输出流

FileInputStream 文件字节输入流,专门用于从文件中读取字节到程序内存中。

FileOutputStream 文件字节输出流,专门用于从内存中写入字节到文件中。

FileInputStream:

步骤:

[a]:创建管道

FileInputStream in = new FileInputStream(file);

【b】:从管道读取一个字节

用read方法;

【c】; 关闭流管道

in.close();

FileOutpurStream:

步骤:

[a]:创建管道

FileOutputStream in = new FileOutputStream(file);

【b】:从管道写一个字节

用write方法;

【c】; 关闭流管道

in.close();

Reader/Writer

Reader 是字符输入流的抽象父类,提供了

read 一次读取一个字符

read(char[] cbuf) 一次读取多个字符到字符缓冲区cbuf,返回长度表示读取的字符个数。

Writer 是字符输出流的抽象父类,提供了

write

write(char[] cbuf)

write(string)

FileReader 文件字符输入流,专门用于读取默认字符编码文本性文件。

FileWriter 文件字符输出流,专门用于写入默认字符编码的文本性文件。为了提高效率,FileWriter内部存在一个字节缓冲区,用于对待写入的字符进行统一编码到字节缓冲区,一定要在关闭流之前,调用flush方法刷新缓冲区。

转换流

InputStreamReader继承于Reader,是字节流通向字符流的桥梁,可以把字节流按照指定编码 解码 成字符流。

OutputStreamWriter 继承于Writer,是字符流通向字节流的桥梁,可以把字符流按照指定的编码 编码 成字节流。

c18c2286aebd58b74b332830f9433514.png

[1]win平台默认的utf8编码的文本性文件带有BOM,java转换流写入的utf8文件不带BOM。所以用java读取手动创建的utf8文件会出现一点乱码(?hello中国,?是bom导致的)

[2]用字符集编码,一定用字符集解码!!

1.1 BufferedReader/BufferedWriter

BufferedReader 继承于Reader,提供了

read

read(char[] cbuf)

readLine() 用于读取一行文本,实现对文本的高效读取。

BufferedReader 初始化时需要一个reader,本质上BufferedReader在reader的基础上增加readLine()的功能。

BufferedWriter继承于Writer,提供了

write

write(char[] cbuf)

write(string)

newline() 写入一个行分隔符。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值