当前位置:   article > 正文

java使用字节流对文件进行读写操作_java字节流读取文件

java字节流读取文件


前言

  Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。 


一、字节流是什么?

  字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的。通过其子类FileInputStream和FileOutputStream来实现对文件的读写。

二、代码实现

1.写文件操作

  1. public static void out(){
  2. //1.确定目标文件
  3. File file =new File("E:\\java基础学习\\帅.txt");//如果没有该文件将自动创建,前提是上级目录存在
  4. //2.新建一个输出流对象
  5. try {
  6. FileOutputStream fileOutputStream =new FileOutputStream(file,false);
  7. //append为true表示追加
  8. //3.确定要输出的内容
  9. String info ="学java要努力\r\n";// \r\n 表示换行
  10. //4.向目标文件写入内容
  11. try {
  12. fileOutputStream.write(info.getBytes());
  13. System.out.println("写入成功");
  14. //5.关闭流
  15. fileOutputStream.close();
  16. } catch (IOException e) {
  17. e.printStackTrace();
  18. }
  19. } catch (FileNotFoundException e) {
  20. e.printStackTrace();
  21. }
  22. }

2.读文件操作

  1. private static void in() {
  2. //1.确定目标文件
  3. File file =new File("E:\\java基础学习\\帅.txt");//文件路径写自己的
  4. //2.新建一个输入流对象
  5. //jdk新增语法,实现了closeable接口的类可以在try()中实现自动关闭
  6. try(
  7. FileInputStream fileInputStream =new FileInputStream(file)
  8. ) {
  9. byte [] bytes =new byte[1024*10];
  10. StringBuffer stringBuffer =new StringBuffer();
  11. int len =-1;//表示每次读取的字节长度
  12. //把数据读取到字节数组中,并且返回读取的字节数,若字节数为-1,则表示已经读完
  13. while((len=fileInputStream.read(bytes))!=-1){
  14. stringBuffer.append(new String(bytes));
  15. }
  16. //关闭流
  17. // fileInputStream.close();
  18. System.out.println(stringBuffer);
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. }

目录

前言

一、字节流是什么?

二、代码实现

1.写文件操作

2.读文件操作

3.完整代码

总结


3.完整代码

  1. package 字节流;
  2. import java.io.*;
  3. /**
  4. * 一般操作非文本文件,使用字节流
  5. * 输出流超类OutputStream,对文件的输入流使用子类FileOutputStream
  6. * 输入流超类InputStream,对文件的输入流使用子类FileInputStream
  7. *
  8. * 每次只操作一个字节
  9. * 默认每次执行写入操作会直接把数据写入文件
  10. */
  11. public class ByteStreamDemo {
  12. public static void main(String[] args) {
  13. out();
  14. in();
  15. }
  16. //读文件
  17. private static void in() {
  18. //1.确定目标文件
  19. File file =new File("E:\\java基础学习\\帅.txt");//文件路径写自己的
  20. //2.新建一个输入流对象
  21. //jdk新增语法,实现了closeable接口的类可以在try()中实现自动关闭
  22. try(
  23. FileInputStream fileInputStream =new FileInputStream(file)
  24. ) {
  25. byte [] bytes =new byte[1024*10];
  26. StringBuffer stringBuffer =new StringBuffer();
  27. int len =-1;//表示每次读取的字节长度
  28. //把数据读取到字节数组中,并且返回读取的字节数,若字节数为-1,则表示已经读完
  29. while((len=fileInputStream.read(bytes))!=-1){
  30. stringBuffer.append(new String(bytes));
  31. }
  32. //关闭流
  33. // fileInputStream.close();
  34. System.out.println(stringBuffer);
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. //写文件
  40. public static void out(){
  41. //1.确定目标文件
  42. File file =new File("E:\\java基础学习\\帅.txt");//如果没有该文件将自动创建,前提是上级目录存在
  43. //2.新建一个输出流对象
  44. try {
  45. FileOutputStream fileOutputStream =new FileOutputStream(file,false);
  46. //append为true表示追加
  47. //3.确定要输出的内容
  48. String info ="学java要努力\r\n";// \r\n 表示换行
  49. //4.向目标文件写入内容
  50. try {
  51. fileOutputStream.write(info.getBytes());
  52. System.out.println("写入成功");
  53. //5.关闭流
  54. fileOutputStream.close();
  55. } catch (IOException e) {
  56. e.printStackTrace();
  57. }
  58. } catch (FileNotFoundException e) {
  59. e.printStackTrace();
  60. }
  61. }
  62. }

总结


例如:以上就是今天要讲的内容,本文仅仅简单介绍了字节流的使用,而java的io流框架中提供了许多对字节,字符的操作方法

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

闽ICP备14008679号