Java — IO

本文视频网址:【Java语言进阶】3小时学会io流的使用方法

1 File

文件类File,可以表示目录,也可以表示文件。
File file = new File(Path path)
path可以是一个文件夹的路径,也可以是一个文件的路径。

  • 绝对路径
    file.getAbsolutePath()
  • 相对路径
    file.getPath()
    在工程项目中,项目中某个文件所在的目录,可以用相对路径表示。这样打包发送给其他人后,仍可以正常使用。

2 流

2.1 字节流、字符流

  • 字节流
    系统中的文件(图片、视频等)都是以二进制进行存储,所以最小数据单元就是字节(8个二进制字符),这也意味着系统中的所有文件都可以用字节流进行处理。即字节流读数据时,一次读8位。

  • 字符流
    有字节流了,为什么还要使用字符流呢?因为每个国家的字符不同,这涉及到了字符编码问题。比如汉字,获取到汉字字节数据的同时,指定编码表才可以解析正确的数据。只要操作字符数据,优先考虑字符流体系。

2.2 字节流的实现

接口:inputStream,OutputStream。
这两个接口中定义了读写文件的方法。

**输入:**实现InputStream的类有许多,90%的情况下会使用FileInputStream。

InputStream ins = new FileInputStream("H:\\word.txt");

int data1 = ins.read();//一次读入一个字节,即8位二进制字符
int data2 = ins.read();
System.out.println((char)data1);
System.out.println((char)data2);
			
byte[] buff = new byte[2048];//以一个字节为单位读,最长读入2048个字节
int length = ins.read(buff);
System.out.println(length);
for (byte b : buff) {
	System.out.print((char)(int)b);
}

**输出:**实现InputStream的类有许多,90%的情况下会使用FileInputStream。

OutputStream os = new FileOutputStream("H:\\outdata.txt");
os.write(97);

2.3 字符流的实现

FileWriter writer = new FileWriter(new File("H:\\word.txt"));

writer.write("I love you.我爱你。");
writer.close();

FileReader reader = new FileReader(new File("H:\\word.txt"));
//System.out.println((char)reader.read());
char[] buf = new char[50];
reader.read(buf);
for (char c : buf) {
    System.out.print(c);
}

如何选择字节流与字符流?
只有文本文件可以用字符流,而非文本文件只能使用字节流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张之海

若有帮助,客官打赏一分吧

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

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

打赏作者

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

抵扣说明:

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

余额充值