脚本宝典收集整理的这篇文章主要介绍了Java知识点总结(JavaIO-字节流),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Java知识点总结(JavaiO-字节流)
@(Java知识点总结)[Java, JavaIO]
[toc]
字节流
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流。
字节流主要操作byte类型数据,以byte数组为准,主要操作类是 OutputStream 类和 InputStream 类。
输出写入数据,输入写出数据
字节输出流:OutputStream
是整个IO包字节输出流的最大父类,定义如下:
public abstract class OutputStream implements Closeable, Flushable
从定义可以发现:
OutputStream是一个抽象类,必须要通过子类实例化对象,才能使用。
可以使用子类FileOutputStream,向上转型后,操作一个文件。
字节输入流:InputStream
可以通过InputStream 从文件中把内容读取出来。
InputStream 类的定义如下: public abstract class InputStream extends Object implements Closeable
同OutputStream 类一样,InputStream 本身也是一个抽象类,必须依靠其子类,如果从文件中读取,使用子类FileinputStream。
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,请注明来意。