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)功能.