Java学习笔记之 IO包 字节流

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记之 IO包 字节流相关的知识,希望对你有一定的参考价值。

IO包最重要的五个类和一个接口

File/OutputStream/InputStream(字节流)/Writer/Reader(字符流)

一个接口:Serializable

?

File类:

技术分享图片


字节流:

OutputStreamInputStream是抽象类

OutputStream是整个IO包中。字节输出流的最大类

FileOutputStream是一个子类,通经常使用整个子类通过多态实例化OutputStream

技术分享图片

?技术分享图片


?

?


packageiotest;

?

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.OutputStream;

importjava.io.FileOutputStream;

importjava.io.InputStream;

importjava.io.FileInputStream;

?

publicclass OutputStreamDemo1 {

public static void main(String args[]) throws Exception{

File f =newFile("D:"+File.separator+"javasrc"+File.separator+"write_file.txt");

OutputStream o=null;

o=new FileOutputStream(f);

String s="Hello World!";

byte b[]=s.getBytes();

o.write(b);

o.close();

//改动文件 追加文件内容

OutputStream o1=null;

o1=new FileOutputStream(f,true);

o1.write("\r\n".getBytes()); //添加换行符

o1.write(b);

o1.close();

?

//读取并打印文件

//01 定义一个字节数组 长度为1024

InputStream in1=null;

in1=new FileInputStream(f);

byte b1[]=new byte[1024];

int len=in1.read(b1);

in1.close();????????????????

print(b1,len);

?

//02 定义一个字节数组 长度为文件长度

InputStream in2=null;

in2=new FileInputStream(f);

byte b2[]=new byte[(int)f.length()];

in2.read(b2);

in2.close();

print(b2);

?

?? ????//03 已经文件长度 逐个字节读取

?????? ???????InputStream in3=null;

in3=new FileInputStream(f);

byte b3[]=new byte[(int)f.length()];

for (int i=0;i<b3.length;i++){

b3[i]=(byte) in3.read();

}

in3.close();

print("the third read method:");

print(b3);

?????

//04 未知文件长度读取

InputStream in4=null;

in4=new FileInputStream(f);

byte b4[]=new byte[1024];

int i=0;

int temp=0;

while ((temp=in4.read())!=-1){

b4[i]=(byte)temp;

i++;

}

in4.close();

print("the fourth read method:");

print(b4);

}

?

public static void print(byte b[],int len){

System.out.println(new String(b,0,len));

}

public static void print(byte b[]){

System.out.println(new String(b));

}

public static void print(String b){

System.out.println(b);

}

?

}

以上是关于Java学习笔记之 IO包 字节流的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE 学习笔记之IO流(二十二)

Java基础学习笔记二十 IO流

Java IO学习笔记对象流

java学习笔记 --- IO

Java学习笔记6.1.3 字节流 - 字节流缓冲区与缓冲字节流

Java学习笔记6.1.3 字节流 - 字节流缓冲区与缓冲字节流