JavaSE入门学习44:文件传输基础之I/O流

Posted life is wonderful

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE入门学习44:文件传输基础之I/O流相关的知识,希望对你有一定的参考价值。

       三字节流的使用

       6)FileOutputStream--->实现了向文件中写出byte数据的方法

       FileOutputStream继承了OutputStream抽象类。

       FileOutputStream类中的方法:


       实例代码1:

<span style="font-size:18px;">import java.io.*;

public class FileOutDemo1{
	public static void main(String[] args) throws IOException {
		//如果该文件不存在,则直接创建,如果存在,删除后创建
		FileOutputStream out = new FileOutputStream("E:\\\\Java\\\\JavaSE\\\\IO\\\\out.dat");
		out.write('A');//写出了'A'的低八位
		out.write('B');//写出了'B'的低八位
		int a = 10;//write只能写八位,那么写一个int需要些写4次,每次8位
		out.write(a >>> 24);
		out.write(a >>> 16);
		out.write(a >>> 8);
		out.write(a);
		byte[] gbk = "中国".getBytes("gbk");
		out.write(gbk);
		out.close();
		
		IOUtil.printHex("E:\\\\Java\\\\JavaSE\\\\IO\\\\out.dat");
	}
}</span>

       运行结果:


       文件拷贝

       实例代码2:

<span style="font-size:18px;">import java.io.*;

public class IOUtil{
	/*
	 * 文件拷贝,字节批量读取
	 */
	public static void copyFile(File srcFile,File destFile) throws IOException{
		if(!srcFile.exists()){
			throw new IllegalArgumentException("文件:"+srcFile+"不存在");
		}
		if(!srcFile.isFile()){
			throw new IllegalArgumentException(srcFile+"不是文件");
		}
		FileInputStream in = new FileInputStream(srcFile);
		FileOutputStream out = new FileOutputStream(destFile);
		byte[] buf = new byte[8*1024];
		int b ;
	        while((b = in.read(buf,0,buf.length))!=-1){
	    	      out.write(buf,0,b);
	    	      out.flush();//最好加上
	       }
	       in.close();
	       out.close();
	}

	public static void main(String[] args) {
		try{
			IOUtil.copyFile(new File("E:\\\\Java\\\\JavaSE\\\\IO\\\\test.txt"), new File("E:\\\\Java\\\\JavaSE\\\\IO\\\\test1.txt"));
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}</span>

       运行结果:


       

       7)DataOutputStream类/DataInputStream类

       对"流"功能的扩展,可以更加方面的读取int、long、字符等类型数据。此类体现了设计模式中的装饰模式。

       DataInputStream类中常用的方法:



       DataOutputStream类中常用的方法:



         实例1:

import java.io.*;

public class DisDemo{
	public static void main(String[] args) throws IOException{
	    String file = "E:\\\\Java\\\\JavaSE\\\\IO\\\\demo\\\\dos.dat";
	    IOUtil.printHex(file);
	    DataInputStream dis = new DataInputStream(new FileInputStream(file));
	    int i = dis.readInt();
	    System.out.println(i);
	    i = dis.readInt();
	    System.out.println(i);
	    long l = dis.readLong();
	    System.out.println(l);
	    double d = dis.readDouble();
	    System.out.println(d);
	    String s = dis.readUTF();
	    System.out.println(s);
            dis.close();
	}
}

       运行结果: