import java.io.*;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.*;
public class TestIO implements Serializable{
public static void main(String[] args) {
//new TestIO().testFis();
//new TestIO().testFos();
//new TestIO().testStreamReader();
//new TestIO().testFile();
new TestIO().testFilter();
}
// 字節輸入流:InputStream類
public void testFis(){
try{
FileInputStream fis = new FileInputStream("D://document//testfiles//testio.txt");
byte[] bs = new byte[fis.available()]; //表示管道要處理的源文件的總大小
fis.read(bs); //read()方法的參數是用來盛接過來數據的容器
System.out.println(new String(bs)); //字節型轉化爲字符串
fis.close();
}catch(Exception e){
e.printStackTrace();
}
}
// 字節輸出流: OutputStream類
public void testFos(){
try{
FileOutputStream fos = new FileOutputStream("D://document//testfiles//testio.txt");
String str = new String("aaaaaaaaa");
fos.write(str.getBytes()); //字符串轉化爲字節型,str.getBytes()方法
}catch(Exception e){
e.printStackTrace();
}
}
// 控制檯數據操作類:StreamReader/StreamWriter類
public void testStreamReader(){
InputStreamReader isr = new InputStreamReader(System.in);
try{
for(int i=1; i>0; i++){
BufferedReader br = new BufferedReader(isr);
int is = br.read(); //此read()方法是把字符轉化爲Unicode碼,整型的
Integer ins = new Integer(is);
String sins = ins.toString();
if(sins != null){
System.out.println(is);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
// File類:String[] list()
public void testFile(){
List<File> lfs = new ArrayList<File>();
File fir = new File("D:/document/testfiles");
lfs.add(fir);
if(!lfs.isEmpty()){
for(int i = 0; i < lfs.size(); i++){
System.out.println("1-----"+lfs.get(i));
}
}
String sp = fir.getPath();
System.out.println("2-----"+sp); //完整路徑(包括當前文件fir,即原樣輸出)
String strp = fir.getParent(); //完整路徑(fir文件的上級)
System.out.println("3-----"+strp);
String strn = fir.getName(); //fir最後文件名
System.out.println("4-----"+strn);
long lf = fir.length(); //長整型字節數
System.out.println("5-----"+lf);
boolean bfsr = fir.setReadOnly(); //是否是隻讀文件
System.out.println("6-----"+bfsr);
fir.setReadable(true); //設置爲可讀取
boolean bfr = fir.canRead(); //是否是可讀文件
System.out.println("7-----"+bfr);
fir.setWritable(true); //設置爲可寫入
boolean bfw = fir.canWrite(); //是否是可寫入文件
System.out.println("8-----"+bfw);
boolean bfih = fir.isHidden(); //是否是隱藏文件
System.out.println("9-----"+bfih);
boolean bfif = fir.isFile(); //是否爲標準文件
System.out.println("10-----"+bfif);
System.out.println("------------------------------");
}
// 文件過濾器的實現 java.io.FilenameFilter 接口,String[] list()讀取當前文件夾下的文件!!!
// 掌握好 File的 String[] list(new ...FilenameFilter())方法
public void testFilter(){
File f1 = new File("D:/document/testfiles");
String ss[] = f1.list();
for(String ss2 : ss){
System.out.println("11-----"+f1.getPath()+"//"+ss2);
}
String[] sss = f1.list(new MyFilter());
for(String sss2 : sss){
System.out.println("12-----"+f1.getPath()+"//"+sss2);
}
System.out.println("----------------------------");
}
// 實現FilenameFilter接口
private class MyFilter implements FilenameFilter{
public boolean accept(File firt, String strt){
if(strt.endsWith(".class")){
return true;
}else{
return false;
}
}
}
}