java新手笔记29 读取文件
1.读取文件
package com.yfs.javase;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.Reader;
public class IODemo1 {
	/**
	 * 读取文件 显示
	 */
	public static void main(String[] args) throws Exception {
		//readFileSteame();
        readFileChar();
	}
	public static void readFileChar() throws Exception {
		//字节流
		Reader byte= new FileReader("FileDemo1.java");
		
		int data = byte.read();
		while(data != -1) {
			System.out.print((char)data);
			data = byte.read();
		}
		read.close();
	}
	public static void readFileSteame() throws Exception {
		//File file = new File("FileDemo1.java");//源头
		//输入流 源头 目的 连接 字节流
		//InputStream in = new FileInputStream(file) ;
		InputStream in = new FileInputStream("FileDemo1.java");
		//程序 目的
		int data = in.read();//读取文件数据
		while(data != -1){//读到-1 文件结束
			System.out.print((char)data);
			data = in.read();
		}
		
		in.close();
	}
}
2.输出流
package com.yfs.javase;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.Writer;
public class IODemo2 {
	/**
	 * 输出流
	 */
	public static void main(String[] args) throws Exception {
		//outDataSteame();
		outDataChar();
	}
	public static void outDataChar() throws Exception {
		Writer write = new FileWriter("outchar.txt");
		write.write('a');//处理一个字节
		write.write(5);
		write.write('中');//数据丢失
		
		write.close();
	}
	public static void outDataSteame() throws Exception {
		File file = new File("out.txt");
		//输出流
		OutputStream out = new FileOutputStream(file);
		out.write('a');//处理一个字节
		out.write(5);
		out.write('中');//数据丢失
		
		out.close();
		
	}
	
}
3.复制文件
package com.yfs.javase;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class IODemo3 {
	/**
	 * 复制文件
	 */
	public static void main(String[] args) throws Exception {
		// copyFileStreame();
		copyFileChar();
	}
	public static void copyFileChar() throws Exception {
		Reader in = new FileReader("E:/img/index.gif");
		Writer out = new FileWriter("C:/pic1.gif");
		int data = in.read();
		while (data != -1) {
			out.write(data);
			data = in.read();
		}
		in.close();
		out.close();
		System.out.println("文件复制完成...");
	}
	public static void copyFileStreame() throws Exception {
		InputStream in = new FileInputStream("E:/img/index.gif");
		OutputStream out = new FileOutputStream("C:/pic.gif");
		int data = in.read();
		while (data != -1) {
			out.write(data);
			data = in.read();
		}
		in.close();
		out.close();
		System.out.println("文件复制完成...");
	}
}
4.缓冲流
package com.yfs.javase;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class IODemo4 {
	/**
	 * 复制文件 缓冲流
	 */
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		// copyFileStreame();
		//copyFile();
		//copyFile1();
		copyFile2();
		long end = System.currentTimeMillis();
		System.out.println("复制文件使用 " + (end - start) + " 毫秒");
	}
	public static void copyFile2() throws Exception {
		File source = new File("FileDemo1.java");
		InputStream in = new FileInputStream(source);
		File target = new File("C:/", source.getName());
		OutputStream out = new FileOutputStream(target);
		//自定义缓冲区
		byte[] data = new byte[1024  * 4];//1k 
		int len = in.read(data);//len 读取的数据长度
	    while(len != -1 ) {//8
	    	out.write(data, 0, len);
	    	len = in.read(data);
	    }
		in.close();
		out.close();
		
	}
	public static void copyFile1() throws Exception {
		File source = new File("E:/EditPlus.zip");
		InputStream in = new FileInputStream(source);
		File target = new File("C:/", source.getName());
		OutputStream out = new FileOutputStream(target);
		//自定义缓冲区
		byte[] data = new byte[1024  * 4];//1k 
		int len = in.read(data);//len 读取的数据长度
	    while(len != -1 ) {//8
	    	out.write(data, 0, len);
	    	len = in.read(data);
	    }
		in.close();
		out.close();
		
	}
	public static void copyFile() throws Exception {
		// 缓冲流
		File source = new File("E:/EditPlus.zip");
		InputStream in = new FileInputStream(source);
		File target = new File("C:/", source.getName());
		OutputStream out = new FileOutputStream(target);
		// 缓冲流套接在节点流
		BufferedInputStream bufin = new BufferedInputStream(in);
		BufferedOutputStream bufout = new BufferedOutputStream(out);
		int data = bufin.read();
		while (data != -1) {
			bufout.write(data);
			data = bufin.read();
		}
		in.close();
		out.close();
	}
	public static void copyFileStreame() throws Exception {
		File source = new File("E:/EditPlus.zip");
		InputStream in = new FileInputStream(source);
		File target = new File("C:/", source.getName());
		OutputStream out = new FileOutputStream(target);
		int data = in.read();
		while (data != -1) {
			out.write(data);
			data = in.read();
		}
		in.close();
		out.close();
	}
}
5.流转换
package com.yfs.javase;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class IODemo5 {
	/**
	 * 流转换  字节流 -》 字符流
	 */
	public static void main(String[] args) throws Exception {
		
		InputStream in = new FileInputStream("FileDemo1.java");
		showFile(in);
	}
	public static void showFile(InputStream in) throws Exception {
		Reader read = new InputStreamReader(in);//流转换
		
		int data = read.read();
		
		while(data != -1) {
			System.out.print((char)data);
			data = read.read();
		}
		in.close();
		
	}
	
}
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号