Java OutputStream写入文件与文件复制

兄弟们,今日头条搜索三线城市程序员老陈关注我,我将持续不断推出视频教程。

一,知识点

1,首先不管是InputStream读read,还是OutputStream写write,都支持读写一定长度的byte[]。

2,当然,还支持一个字节一个字节的读写,那么一个字节一个字节的读写,读出来的字节和写入的字节都是用的int类型的参数。

3,int参数只会使用它的8个二进制位,也就是说类似于将int强行转换为byte,我感觉很无聊的设计,还不如直接用byte作为参数,这样搞是因为int太火吗?

4,所以所谓的复制,就是把所有的字节读出来,然后写入文件即可。

二,写入文件示例

写入对象FILE_FOR_WRITE中

//工具类
package com.maoge.stream;
import java.io.File;
public class StreamUtils {
	//用于定义每次读取的长度
	public static final int BUFFER_LENGTH=512;
	//文件对象
	public static File FILE_FOR_READ;
	public static File FILE_FOR_WRITE;
	static{
		FILE_FOR_READ=new File("C:\\test.txt"); 
		FILE_FOR_WRITE=new File("C:\\result.txt"); 
	}
}

写入过程

package com.maoge.stream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamDemo {
	public static void main(String[] args){
		writeToFile();
	}
	public static void writeToFile(){
		byte buffer[]=buffer=new String("hello world!").getBytes();
		OutputStream out=null;
		try {
			out = new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
			out.write(buffer, 0, buffer.length);
		} catch (Exception ex) {
			System.out.println(ex.toString());
		}finally{
			try {
				out.close();
			} catch (IOException ioEx) {
				System.out.println(ioEx.toString());
			}
		}	
	}
}

三,文件复制示例

直接演示复制图片,因为图片也是二进制位组成的

源文件test.jpg这个需要找个图片,目的文件result.jpg这个是复制后生产的

//工具类
package com.maoge.stream;
import java.io.File;
public class StreamUtils {
	//用于定义每次读取的长度
	public static final int BUFFER_LENGTH=512;
	//文件对象
	public static File FILE_FOR_READ;
	public static File FILE_FOR_WRITE;
	static{
		FILE_FOR_READ=new File("C:\\test.jpg"); 
		FILE_FOR_WRITE=new File("C:\\result.jpg"); 
	}
}

复制过程,该方法是OutputStreamDemo类的静态方法。

public static void fileCopy(){
		FileInputStream in=null;
		FileOutputStream out=null;
		try {
			in=new FileInputStream(StreamUtils.FILE_FOR_READ);
			out=new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
			int c;
			while((c=in.read())!=-1)
				out.write(c);
		} catch (Exception ex) {
			System.out.println(ex.toString());
		}finally{
			try {
				in.close();
			} catch (IOException ioEx) {
				System.out.println(ioEx.toString());
			}
			try {
				out.close();
			} catch (IOException ioEx) {
				System.out.println(ioEx.toString());
			}
		}
	}

你可能感兴趣的:(Java----网络&多线程)