java 文件流读写_【java学习笔记】文件读写(IO流)

1.字节流 FileInputStream、FileOutputStream①FileInputStream1 importjava.io.FileInputStream;23 public classFileInputStreamDemo {4 public static void main(String[] args) throwsException {5 FileIn...
摘要由CSDN通过智能技术生成

1.字节流 FileInputStream、FileOutputStream

①FileInputStream

1 importjava.io.FileInputStream;2

3 public classFileInputStreamDemo {4 public static void main(String[] args) throwsException {5 FileInputStream in = new FileInputStream("D:\\a.txt");6 //构建一个字节数组作为缓冲区

7 byte[] bs = new byte[10];8 //定义一个变量来记录读取的字节个数

9 int len = -1;10 while ((len = in.read(bs)) != -1) {11 System.out.println(new String(bs, 0, len, "utf-8"));12 }13 in.close();14 }15 }

②FileOutputStream

1 importjava.io.FileOutputStream;2

3 public classFileOutputStreamDemo {4 public static void main(String[] args) throwsException {5 //true是追加。不加true,或者是false会新建并覆盖已有的。

6 FileOutputStream out = new FileOutputStream("D:\\a.txt", false);7 //字节流身上没有缓冲区

8 out.write("缓冲区".getBytes("utf-8")); //utf-8编码

9 out.write("abc".getBytes());10 out.close();11 }12 }

关于流中的异常处理

1.将刘对象放在try之外声明并且赋值为null,放到try内初始化。

2.在关流之前需要判断流对象是否初始化成功(判断流对象是否为null)。

3.关流之后需要将流对象强制置为null,防止关流失败流对象依然占用文件。

4.需要在关流之前手动冲刷缓冲区以防关流失败导致一部分数据死在缓冲区中。

③用FileInputStream、FileOutputStream复制文件

1 importjava.io.FileInputStream;2 importjava.io.FileNotFoundException;3 importjava.io.FileOutputStream;4 importjava.io.IOException;5

6 public classCopyFileDemo {7 public static voidmain(String[] args) {8 FileInputStream in = null;9 FileOutputStream out = null;10 try{11 in = new FileInputStream("D:\\a.zip");12 out = new FileOutputStream("C:\\a.zip");13 //构建一个字节数组作为缓冲区

14 byte[] bs = new byte[1024 * 1024 * 10];15 //定义一个变量来记录每次读取的字节个数

16 int len = -1;17 while ((len = in.read(bs)) != -1) {18 out.write(bs, 0, len);19 }20 } catch(FileNotFoundException e) {21 e.printStackTrace();22 } catch(IOException e1){23 e1.printStackTrace();24 } finally{25 if(in != null){26 try{27 in.close();28 } catch(IOException e) {29 e.printStackTrace();30 } finally{31 in = null;32 }33 }34 if(out != null){35 try{36 out.close();37 } catch(IOException e) {38 e.printStackTrace();39 } finally{40 out = null;41 }42 }43 }44 }45 }

2.转换流 InputStreamReader、OutputStreamWriter

①InputStreamReader 将字节转化为字符的流

1 importjava.io.FileInputStream;2 importjava.io.InputStreamReader;3

4 public classInputStreamReaderDemo {5 public static void main(String[] args) throwsException {6 //底层靠的是FileInputStream7 //读取出来的是字节,但是展现的是字符---将字节转化为字符

8 InputStreamReader in = new InputStreamReader(new FileInputStream("D:\\test.txt"), "utf-8");9 char[] cs = new char[3];10 in.read(cs);11 in.close();12 System.out.println(cs);13 }14 }

②OutputStreamWriter 将字符转化为字节的流

1 importjava.io.FileOutputStream;2 importjava.io.IOException;3 importjava.io.OutputStreamWriter;4

5 public classOutputStreamWriterDemo {6 public static void main(String[] args) throwsIOException {7 //OutputStreamWriter将字符转化为字节的流8 //实际上是用FileOutputStream来写出数据9 //传入的参数是字符形式,但是最后以字节形式向外写出---字符转字节

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值