Java-Io流操作

package com.file;

import java.io.File;
import java.io.FilenameFilter;
//自定義過濾器
class myFiles implements FilenameFilter{
	@Override
	public boolean accept(File dir, String name) {
//		返回所有後綴爲.java的文件
		return name.endsWith(".java");
	}
	
}
//文件處理
public class Demo1 {
	public static void main(String[] args) {
		File file = new File("F:\\java");
		ListFile(file);
	}
	
	public static void ListFile(File dir){
		File[] files = dir.listFiles(new myFiles());
		for(File file :files){
			System.out.println(file.getName());
		}
	}

}

-------

package com.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//輸入流
public class Demo4 {
	public static void main(String[] args) {
		File file = new File("E:"+File.separator+"a.txt");
		FileInputStream fileinput =null;
		try {
			fileinput= new FileInputStream(file);
			byte[] filebyte = new byte[1024];
			int length=0;
			while((length = fileinput.read(filebyte))!=-1){
				System.out.print(new String(filebyte,0,length));
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
-------字節輸入流的使用
package com.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
//CopyImages異常處理
public class Demo6 {
	public static void CopyImage(){
		File inputFile = new File("E:"+File.separator+"z.jpg");
		File outPutFile = new File("F:"+File.separator+"a.jpg");
		FileInputStream fileInputStream=null;
		FileOutputStream fileOutputStream=null;
		try{
			fileInputStream = new FileInputStream(inputFile);
			fileOutputStream= new FileOutputStream(outPutFile);
			byte[] filebyte = new byte[1024];
			int length=0;
			while((length=fileInputStream.read(filebyte))!=-1){
				fileOutputStream.write(filebyte,0,length);
			}
		}catch (Exception e) {
			System.out.println("拷貝圖片失敗.....");
			throw new RuntimeException(e);
		}finally{
				try {
					if(fileOutputStream!=null){
						fileOutputStream.close();
						System.out.println("關閉輸出流成功....");
					}
					
				} catch (IOException e) {
					System.out.println("關閉輸出流失敗....");
					throw new RuntimeException(e);
				}
				try {
					if(fileInputStream!=null){
						fileInputStream.close();
						System.out.println("關閉輸入流成功....");
					}
				} catch (IOException e) {
					System.out.println("關閉輸入流失敗....");
					throw new RuntimeException(e);
				}
		}
	}
	public static void main(String[] args) {
		CopyImage();
	}
}
------字節輸入輸出流Copy圖片

package com.file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
//字節緩衝流拷貝圖片
public class Demo7 {
	public static void main(String[] args) {
		CopyImages();
	}
	public static void CopyImages(){
		FileInputStream fileInputStream=null;
		BufferedInputStream bufferredInputStream=null;
		FileOutputStream fileOutputStream=null;
		BufferedOutputStream bufferedOutputStream=null;
		try {
			File inputFile = new File("E:"+File.separator+"z.jpg");
			File outPutFile = new File("F:"+File.separator+"w.jpg");
			fileInputStream = new FileInputStream(inputFile);
			bufferredInputStream = new BufferedInputStream(fileInputStream);
			fileOutputStream = new FileOutputStream(outPutFile);
			bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
			int temp = 0;
			while((temp=bufferredInputStream.read())!=-1){
				bufferedOutputStream.write(temp);
//				bufferedOutputStream.flush();
			}
		} catch (Exception e) {
			System.out.println("打印照片失敗...");
			throw new RuntimeException(e);
			// TODO: handle exception
		}finally{
			if(bufferredInputStream!=null){
				try {
					bufferredInputStream.close();
				} catch (IOException e) {
					System.out.println("關閉輸入流失敗...");
					throw new RuntimeException(e);
				}
				
			}
			if(bufferedOutputStream!=null){
				try {
					bufferedOutputStream.close();
				} catch (IOException e) {
					System.out.println("關閉輸出流失敗....");
					throw new RuntimeException(e);
				}
			}
		}
	}
}
-----字節緩衝流
package com.file;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
//字符流
public class Demo8 {
	public static void main(String[] args) throws IOException {
		File file = new File("F:"+File.separator+"ArrayList.txt");
		FileReader fileReader = new FileReader(file);
		char[] buf = new char[1024];
		int temp=0;
		while((temp=fileReader.read(buf))!=-1){
			System.out.println(new String(buf,0,temp));
		}
	}

}
-----字符流 處理中文亂碼

package com.file;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//使用字符流copy文件
public class Demo9 {
	public static void main(String[] args) throws IOException {
		File inputFile =new File("F:"+File.separator+"a.txt");
		File ouputFile = new File("E:"+File.separator+"c.txt");
		FileReader fileReader = new FileReader(inputFile);
		FileWriter fileWiter = new FileWriter(ouputFile);
		int temp = 0;
		char[] buf = new char[1024*8];
		while((temp=fileReader.read(buf))!=-1){
			fileWiter.write(buf,0,temp);
		}
		fileWiter.close();
		fileReader.close();
	}

}
-----字符輸入輸出流使用,字符流不能用來Copy圖片

字節流


輸入字節流:
-----------| InputStream  所有輸入字節流的基類  抽象類
-----------------| FileInputStream 讀取文件數據的輸入字節流
-----------------| BufferedInputStream  緩衝輸入字符流       該類出現的目的是爲了提高讀取文件 數據的效率。 這個類其實只不過是在內部維護了一個8kb的字節數組而已。




輸出字節流:
-----------| OutputStream 所有輸出字節流的基類。  抽象類。
----------------| FileOutputStream 向文件輸出數據的輸出字節流  
----------------| BufferedOutputStream 緩衝輸出字節流   該類出現的目的也是爲了提高向文件寫數據的效率。 這個類的也只不過是在內部維護了一個8kb的字節數組而已。


字符流 :  字符流 = 字節流  + 編碼(解碼)


輸入字符流:
---------| Reader   所有輸入字符流的基類。  抽象類。
----------------| FileReader 讀取文件數據的輸入字符流。 
----------------| BufferedReader 緩衝輸入字符流           該類出現的目的是爲了提高讀取文件數據的效率與拓展FileReader的(readLine)功能。  這個類的也只不過是在內部維護了一個8kb的字符數組而已。




輸出字符流:
---------| Writer 所有輸出字符流的基類。  抽象類
----------------| FileWriter 向文件輸出數據的輸出字符流  
----------------| BufferedWriter 緩衝輸出字符流        該類出現的目的是爲了提高寫文件數據的效率與拓展FileWriter的(newLine)功能.



發佈了35 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章