当前位置:   article > 正文

Java中的文件字节流(万能流)_java获取文件字节

java获取文件字节

目录

1. 如何理解文件字节流?

File类

文件字节流

2. 基础概念(文件专属)

FileInputStream

FileOutputStream

3. FileInputStream流的基本方法

1)继承关系:

2)构造方法

3)常用的具体方法

4. FileOutputStream流的基本方法

1)继承关系

2)构造方法

3)常用的具体方法

5. 万能流的异常问题:(需要注意的地方)

6. 案例: 实现文件复制(使用字节流)

案例总结:(4个步骤)

1.进行异常控制

2.创建输入流或输出流对象

3.进行读或写操作

4.关闭流

摘要:本文讲解了java中的文件字节流,也就是我们常说的万年流,包括文件字节输入流(FileInputStream)和文件字节输出流(FileOutputStream)的内容,这里会讲解这两种流的构造方法和常用方法,后面还有一个案例来理解文件字节流。

万能流:任何类型的文件都可以采用该流(输入流或输出流)来读或写

1. 如何理解文件字节流?

首先,文件?File?对文件进行操作?以什么样的形式?

File类

对文件和目录的本身进行操作,不能对文件内容操作。

它完成的操作是:

创建文件,删除文件,判断·某个文件或目录是否存在,获取文件的长度等。

文件字节流

是对文件里的内容进行读和写操作

2. 基础概念(文件专属)

FileInputStream

文件字节输入流:java.io.FileInputStream

继承自InputStream的流,以字节的方式读取文件的内容

FileOutputStream

文件字节输入流:java.io.FileOutputStream

继承自OutputStream的流,以字节的方式将内容写入文件

注:1个字节 = 8个二进制位

文件是存储在硬盘中的,而程序是运行在内存中的。

输入流:从硬盘读取到内存中

输出流:从内存写入到硬盘中

3. FileInputStream流的基本方法

java.io.FileInputStream类

1)继承关系:

2)构造方法

3)常用的具体方法

4. FileOutputStream流的基本方法

java.io.FileOutputStream类

1)继承关系

2)构造方法

3)常用的具体方法

5. 万能流的异常问题:(需要注意的地方)

1)当创建FileInputStream流对象时,出现文件路径或文件对象错误时,会引发FileNotFoundException异常

2)而FileOutputStream 的创建不依赖于文件是否存在,如果没有这个文件,会新建该文件;但是需要注意的是,当该文件的父级目录不存在时,会报FileNotFoundException;如果打开只读文件的话,会报IOException异常。

6. 案例: 实现文件复制(使用字节流)

  1. package cn.sz.gl.test05;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.io.OutputStream;
  9. public class Test {
  10. public static void copyFileByStream(File source, File target) {
  11. // 判断源文件是否存在,如果不存在,就退出程序
  12. if (!source.exists()) {
  13. System.out.println("源文件不存在,程序退出");
  14. System.exit(0);
  15. }
  16. // target.getParentFile()表示用来获取目标对象的父目录对象
  17. // 如果目标文件路径不存在,就创建
  18. if (!target.getParentFile().exists()) {
  19. target.getParentFile().mkdirs();
  20. }
  21. InputStream is = null;
  22. OutputStream os = null;
  23. try {
  24. // 准备输入流
  25. is = new FileInputStream(source);
  26. // 准备输出流
  27. os = new FileOutputStream(target);
  28. // 准备一个数组,用来存放读写的数据
  29. byte[] b = new byte[1024];
  30. int len = 0;
  31. // read(b)实现读取操作,数据存入b数组,返回读取长度给len,当所有内容都读取完毕,len=-1
  32. while ((len = is.read(b)) != -1) {
  33. // 实现写的操作
  34. os.write(b, 0, len);
  35. }
  36. } catch (FileNotFoundException e) {
  37. e.printStackTrace();
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. } finally {
  41. try {
  42. if (is != null) {
  43. is.close();
  44. }
  45. if (os != null) {
  46. os.close();
  47. }
  48. } catch (IOException e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53.    // 将source文件对象的内容读出来,同时完成将读出来的内容写入的target文件对象中
  54. public static void main(String[] args) {
  55. File source = new File("D:\\java\\Java高级\\myfile\\a.txt");
  56. File target = new File("D:\\java\\Java高级\\myfile\\b.txt");
  57. copyFileByStream(source, target);
  58. }
  59. }

案例总结:(4个步骤)

1.进行异常控制

2.创建输入流或输出流对象

3.进行读或写操作

4.关闭流

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/453966
推荐阅读
相关标签
  

闽ICP备14008679号