Java Io

i/o流概述

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出 。

File 

File类概述

File类:是文件和目录路径名的抽象表示形式。

即,Java中把文件或者目录(文件夹)都封装成File对象。也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类即可。

File类常用方法

 字节输出/输入流 

概述

1.字节流和字符流的基本操作是相同的,但是要想操作媒体流就需要用到字节流。

2.字节流因为操作的是字节,所以可以用来操作媒体文件。(媒体文件也是以字节存储的)

3.读写字节流:InputStream 输入流(读)和OutputStream 输出流(写)

以下是一个使用字节输出流向文件写入数据的示例代码:

OutputStream os = new FileOutputStream("test.txt");
String str = "Hello World!";
byte[] b = str.getBytes(); //将字符串转换成字节数组
os.write(b);
os.close();
 

以下是一个使用字节输入流从文件读取数据的示例代码:

InputStream is = new FileInputStream("test.txt");
byte[] b = new byte[1024];
int len = 0;
while ((len = is.read(b)) != -1) {
    System.out.println(new String(b, 0, len));
}
is.close();
 

文件复制

Io语言的文件复制可以使用标准库中的File类。以下是一个基本示例:

sourceFile := File with(File open("path/to/source/file", "r"))
destinationFile := File with(File open("path/to/destination/file", "w"))

destinationFile write(sourceFile readLine) whileTrue(sourceFile rawInput isNotNil)

sourceFile close
destinationFile close

在这个示例中,我们使用File类的open方法打开源文件和目标文件。使用“r”(只读)和“w”(写入)作为打开文件的模式。使用write()和readLine()方法将数据从源文件复制到目标文件。最后,我们关闭源文件和目标文件。

请注意,这只是一个基本示例,你可能需要根据你的实际需求进行修改。

字符输入/输出流

字符输入/输出流是Java中用于读写字符数据的输入/输出流。它们处理的数据单位是2个字节(16位),而不是字节流中的1个字节。

Java中提供了多个字符输入/输出流,包括:

  • Reader/Writer:抽象类,是所有字符输入/输出流的超类。
  • InputStreamReader/OutputStreamWriter:将字节流转换为字符流,是Reader/Writer的子类。
  • FileReader/FileWriter:使用默认的字符编码,从文件读取或写入字符,是Reader/Writer的子类。

字符输入/输出流的常用方法包括:

  • read():从输入流中读取1个字符。
  • read(char[] cbuf):从输入流中读取若干个字符到数组cbuf中。
  • write(int c):将1个字符写入输出流。
  • write(char[] cbuf):将一个字符数组中的所有字符写入输出流。

使用字符输入/输出流的好处是可以直接读取和写入文本数据,而不用对字节进行处理和转换,提高了代码的可读性和可维护性。

字符缓冲输入/输出流是Java中的一种高效的IO操作方式,它们是基于字符的,可以在读写文件、网络等场景中使用。在处理大文件时,使用字符缓冲流可以减少IO操作的次数,提高程序的执行效率。

在Java中,字符缓冲输入流和字符缓冲输出流的基类分别为BufferedReader和BufferedWriter。使用这两个类,可以将数据缓存在内存中,然后一次性读入或写入,减少了频繁的IO操作,提高了程序的性能。

字符缓冲输入流和输出流的使用方法与普通的输入/输出流相似,只需创建相应的对象,然后调用read或write方法即可。例如,使用BufferedReader读取文件的示例代码如下:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

使用BufferedWriter写入文件的示例代码如下:

try (BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"))) {
    writer.write("Hello, World!");
    writer.newLine();
    writer.write("This is a test.");
} catch (IOException e) {
    e.printStackTrace();
}

需要注意的是,在使用字符缓冲流时,必须在操作完成后调用close方法,以确保数据被写入或读取完成并且缓冲区被清空。而且,也可以使用try-with-resources语句来自动关闭资源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值