读写二进制文件(图片、音频)

来源:互联网 发布:淘宝买阿迪达斯正品店 编辑:程序博客网 时间:2024/05/15 10:46
二进制流
输入流:DataInputStream FileInputStream的子类
使用:DataInputStream(InputStream )
引入相关的类
import java.io.FileInputStream;
import java.io.DataInputStream;
构造数据输入流对象
FileInputStream fis=new FileInputStream("C:\\HelloWorld.class");
DataInputStream dis=new DataInputStream(fis);
//调用read()方法读取二进制数据

dis.read ();dis.readInt(); dis.reaByte();dis.readLong();

dis.readChar();dis.readUTF();dos.writeChar();....

关闭数据输入流
dis.close();
与字节流FileInputStream 类实现文本文件读取
步骤极其相似


输出流:DataOutputStream FileOutputStream的子类

引入相关的类

import java.io.FileOutputStream;

import java.io.DataOutputStream;
构造数据输出流对象
FileOutputStream outFile=new FileOutputStream("C:\\temp.class");

DataOutputStream out=new DataOutputStream(outFile);

int temp; 

while(( temp = dis.read() ) != -1){out.write(temp)}

调用write()方法写二进制文件的数据
out.write();
关闭数据输出流
out.close();
与字节流FileOutputStream 类实现文本文件读

取步骤极其相似

import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class DataIOTest {public static void main(String[] args) {DataIOTest test = new DataIOTest();String path = "D:/Pictures/psb.jpg";test.inputData(path);}/* * 二进制 输入流 */public void inputData(String path) {FileInputStream fis = null;DataInputStream dis = null;FileOutputStream fos = null;DataOutputStream dos = null;try {fis = new FileInputStream(path);dis = new DataInputStream(fis);fos = new FileOutputStream("D:/psb.jpg");dos = new DataOutputStream(fos);int data = -1;byte[] b = new byte[1024];while ((data = dis.read(b)) != -1) {dos.write(b);}dos.flush();System.out.println("复制成功");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {dos.close();fos.close();dis.close();fis.close();} catch (IOException e) {e.printStackTrace();}}}}


0 0