DataInputstream和DataOutputstream

发表时间:2017-05-09 13:13:52 浏览量( 19 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:

一、datainputstream和dataoutputstream

DataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。 

DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。

比如以DataInputStream为例,字节入流的API结构]显示了其继承于java.io. FilterInputStream。DataInputStream可以被认为是“更高级”的类,在编程中需要使用修饰其他的InputStream来进行使用,考虑到效率,推荐这个被修饰的类为带缓冲的流,比如:BufferedInputStream。DataOutputStream的情况也是如此,就不需我们再次累述。

DataInputStream的构造器:

    DataInputStream(InputStream in)

DataOutputStream的构造器:

DataOutputStream(OutputStream out)

java.io.DataInputStream dis = new  java.io.DataInputStream(

new BufferedInputStream(new URL(srcUri).openStream()));

            /*生成二进制输出流 ,使用FileOutputStream--修饰-->BufferedOutputStream

--修饰-->DataOutputStream*/

             java.io.DataOutputStream dos = new  java.io.DataOutputStream(

new BufferedOutputStream(new FileOutputStream(targetFile)));


二、示例代码

    	public static void copy(String srcpath, String targetpath) {

		DataInputStream input = null;
		DataOutputStream output = null;

		try {
			input = new DataInputStream(new BufferedInputStream(
					new FileInputStream(new File(srcpath))));
			output = new DataOutputStream(new BufferedOutputStream(
					new FileOutputStream(new File(targetpath))));

			int temp;

			while ((temp = input.read()) != -1) {
				output.write(temp);
			}

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 释放资源
			try {
				input.close();
				output.flush();
				output.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}