Java字节流
来源:互联网 发布:开淘宝网店注册收费 编辑:程序博客网 时间:2024/05/17 03:49
Java字节流
字节流:InputStream、OutputStream
·字符流:Reader、Writer
不管使用何种流,基本的操作流程是一样的,以文件操作为例:
·确定操作文件的路径
·通过字节流或字符流的子类为字节流和字符流对象实例化
·进行输入、输出操作
·关闭流
2.1字节输出流:OutputStream
Java.io.OutputStream是可以进行字节数据(byte)的输出,这个类的定义结构如下:
public abstract class OutputStreamextends Objectimplements Closeable, Flushable
三个输出的write()方法:
·输出单个字节:public abstract void write(int b) throwsIOException
·输出全部字节:public void write(byte[] b) throws IOException
·输出部分字节:public void write(byte[] b,int off,int len)throwsIOException
OutputStream是个抽象类,需要使用子类进行实例化(ByteArrayOutputStream,FileOutputStream, FilterOutputStream,ObjectOutputStream, OutputStream, PipedOutputStream),本次对文件操作,使用FileOutputStream子类。
构造方法:public FileOutputStream(File file) throwsFileNotFoundException,覆盖
构造方法:publicFileOutputStream(File file,boolean append) throws FileNotFoundException,追加
范例:文件的输出
public class OS_FileOut_test { public static void main(String[] args) throws Exception { File file = new File("D:" + File.separator + "test" + File.separator + "test.txt"); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = new FileOutputStream(file, true);//文件末尾追加//FileOutputStream fos = new FileOutputStream(file);//写入覆盖 fos.write("hello world".getBytes());//fos.write("hello world".getBytes(),0,5);//将字节数组范围输出 fos.close(); }}
使用单个输出:
String msg="Hello World!"; for (int i = 0; i < msg.length(); i++) { fos.write(msg.charAt(i)); }
在整个OutputStream中最重要的是输出方法:输出部分字节数据
2.2字节输入流:InputStream
使用OutputStream可以完成程序想文件的输出,读取内容使用InputStream。
定义如下:
public abstract class InputStreamextends Objectimplements Closeable
InputStream类依然是Closeable借口的子类,但是InputStream类本身一直存在close()方法,因此可以忽略掉Closeable。在InputStream类之中定义三个read()方法:
·读取单个字节:public abstract int read()throws IOException
|-每次读取一个字节数据,此时返回的数据,如果数据已经读完,则返回-1
·读取所有字节到字节数组:public int read(byte[]b) throws IOException
|-将内容读取到字节数组中,返回的是个数,如果读取完毕返回-1
·读取内容到部分字节数组:public int read(byte[]b,int off,int len)throws IOException
|-将指定长度的内容读取到字节数组之中,返回读取的个数,如果读取完毕返回-1
同样的抽象类,实例化使用子类(AudioInputStream, ByteArrayInputStream, FileInputStream,FilterInputStream, InputStream, ObjectInputStream,PipedInputStream,SequenceInputStream, StringBufferInputStream),此处使用FileInputStream读取文件:
实例:整个文件读入到字符数组
File file = new File("D:" + File.separator + "test" + File.separator + "test.txt"); if (file.exists()) { InputStream is=new FileInputStream(file); byte data[]=new byte[1024]; is.read(data); System.out.println("【"+new String(data)+"】"); is.close(); }
读取部分数据,读取完毕将不再读取
is.read(data,0,20);
而在整个InputStream类中单个字节读取操作:
File file = new File("D:" + File.separator + "test" + File.separator + "test.txt"); if (file.exists()) { InputStream is=new FileInputStream(file); byte data[]=new byte[1024]; int temp=0; int foot=0;//数组的角标 while((temp=is.read())!=-1){ data[foot++]=(byte) temp; } System.out.println("【"+new String(data,0,foot)+"】"); is.close(); }
- java 字节流
- java字节流
- Java字节流操作
- Java IO 字节流
- java IO字节流
- java字节流
- java ---i0---字节流
- java字节流
- 【Java】IO字节流
- Java 字节流
- JAVA字节字符流
- Java字节输入输出流
- Java字节流
- java 字节输入输出流
- java字节流
- Java 字节流操作
- Java IO字节流
- Java字节流操作
- 关于SAE没有file_put_contents写权限的问题
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- 关于Eclipse使用天天模拟器调试Android程序
- 跟Tennant一起学编程--Python环境配置及各种HelloWorld的姿势
- 算法导论例程——快速排序
- Java字节流
- poj2724 Purifying Machine
- 接口1
- AMS1117 5v 变3.5
- CentOS环境下Redis安装
- 什么是mov压敏电阻 保护作用
- 【3】Toasts
- Linux服务器权限管理实践——添加用户只访问某些文件目录
- nRF905 无线发射模块