Java知识点总结(JavaIO-字节流)

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java知识点总结(JavaIO-字节流)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java知识点总结(JavaiO-字节流)

@(Java知识点总结)[Java, JavaIO]

[toc]

字节流

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流。

字节流主要操作byte类型数据,以byte数组为准,主要操作类是 OutputStream 类和 InputStream 类。

输出写入数据,输入写出数据

字节输出流:OutputStream

是整个IO包字节输出流的最大父类,定义如下:

public  abstract class OutputStream implements Closeable, Flushable 

从定义可以发现:
OutputStream是一个抽象类,必须要通过子类实例化对象,才能使用。
可以使用子类FileOutputStream,向上转型后,操作一个文件。

Java知识点总结(JavaIO-字节流)

Java知识点总结(JavaIO-字节流)

字节输入流:InputStream

可以通过InputStream 从文件中把内容读取出来。

  InputStream 类的定义如下:   public  abstract class InputStream extends Object implements Closeable  

同OutputStream 类一样,InputStream 本身也是一个抽象类,必须依靠其子类,如果从文件中读取,使用子类FileinputStream。

Java知识点总结(JavaIO-字节流)

Java知识点总结(JavaIO-字节流)

import  java.io.File; import  java.io.FileInputStream; import  java.io.FileOutputStream; import  java.io.IOException; import  java.io.InputStream; import  java.io.OutputStream;   public  class Demo03 {     // 将字符串转化为byte[]进行输出   public static void test1() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     OutputStream fos = new FileOutputStream(file);       String str = "Hello world!";     byte[] b = str.getBytes(); // 只能使用byte数组,所以将字符串转为byte数组     fos.write(b);     fos.close();     }     // 在文末追加新的内容,且一个字节一个字节的输出   public static void test2() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     OutputStream fos = new FileOutputStream(file, true);       String str = "rnHello world!";     byte[] b = str.getBytes(); // 只能使用byte数组,所以将字符串转为byte数组     for (int i = 0; i < b.length; i++) {       fos.write(b[i]);     }     fos.close();   }     // 读取数据   public static void test3() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     InputStream fis = new FileInputStream(file);       // byte[] b = new byte[1024]; //定义一个数组用来存放读取的数据     byte[] b = new byte[(int) file.length()]; // 根据文件的数据量,开辟指定大小的 byte 数组       int len = fis.read(b); // 读取内容到数组中     fis.close();     System.out.println("读取数据的长度"  + len);     // System.out.println("内容为:"+new String(b));     System.out.println("内容为:"  + new String(b, 0, len)); // 把 byte 数组转为字符串输出   }     // 使用循环,一个字节一个字节读取数据   public static void test4() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     InputStream fis = new FileInputStream(file);       byte[] b = new byte[(int) file.length()];     for (int i = 0; i < b.length; i++) {       b[i] = (byte) fis.read();     }       fis.close();     System.out.println("内容为:"  + new String(b));   }     // 如果不知道要输入的内容有多大,则使用是否读到文件末尾的方式来读取文件   public static void test5() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     InputStream fis = new FileInputStream(file);          int len = 0; //用于记录读取数据的个数     byte[] b = new byte[1024];     int temp = 0; //接收读取的每一个内容          while((temp = fis.read()) != -1){       b[len] = (byte) temp;       len ++;     }          fis.close();     System.out.println("内容为:"  + new String(b,0,len));   }     public static void main(String[] args) {     try {        test1();        test2();        test5();     } catch (IOException e) {       e.printStackTrace();     }   } }     

脚本宝典总结

以上是脚本宝典为你收集整理的Java知识点总结(JavaIO-字节流)全部内容,希望文章能够帮你解决Java知识点总结(JavaIO-字节流)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。