java.io方面的知識總結

InputStream主要方法


FileInputStream示例


import java.io.*;
public class ReadFile{
 public static void main(String args[]){
  try{
   FileInputStream f = new FileInputStream("test.txt");
   int len = f.read();
   while(len != -1){
    System.out.println(len);
    len = f.read();
   }  f.close();
  }
  catch(FileNotFoundException e){
   System.out.print(e.getMessage());
  }
  catch(IOException e){
   e.printStackTrace();
  }
  
 }
}


OutputStream主要方法


FileOutputStream示例


import java.io.*;
public class CopyFile{
 public static void CopyMyFile(FileInputStream in,FileOutputStream out){  
  byte[] b = new byte[100];
  int len;
  try{
   while((len = in.read(b)) != -1){
    out.write(b,0,len);
   }  in.close();  out.close();
  }
  catch(IOException e){
   System.out.println(e.getMessage());
  }
 }
 
 public static void main(String args[]){
  FileInputStream in = null;
  FileOutputStream out = null;
  try{
   in = new FileInputStream("test.txt");
   out = new FileOutputStream("CopyTarget.txt");
   CopyFile.CopyMyFile(in,out);
   System.out.println("文件拷貝完畢!");
  }
  catch(FileNotFoundException e){
   System.out.println(e.getMessage());
  }
 }
}

 


文件處理
在I/O處理中,最常見的是對文件的操作,java.io包中所提供的支持包括類File、FileInputStream、FileOutputStream以及接口FilenameFilter。
類File提供了一種與機器無關的方式來描述一個文件對象。
通過類File所提供的方法,我們可以操作文件及目錄的相關屬性。如:文件名,文件路徑等。
Java將文件目錄看作特殊的文件,即:文件名的列表。
File類
File類的構造方法可用來生成一個新文件或目錄。public File(String path);public File(String path, String name);public File(File dir, String name);


File類相關方法(一)


File類示例(一)


import java.io.*;
public class FileTest1{
 public static void main(String args[]){
  try{
   File f = new File("E://Temp//JavaC","MyFile.txt");  System.out.println(f.createNewFile());
   System.out.println(f.getName());
   System.out.println(f.getPath());
   System.out.println(f.getAbsolutePath());
   System.out.println(f.getParent());
  }
  catch(Exception e){
  }
 }
}


File類相關方法(二)


File類示例(二)


import java.io.*;
public class FileTest2{
 public static void main(String args[]){
  try{
   File f = new File("E://Temp//JavaC","MyFile.txt");
   System.out.println(f.exists());
   System.out.println(f.canWrite());
   System.out.println(f.canRead());
   System.out.println(f.isFile());
   System.out.println(f.isDirectory());
  }
  catch(Exception e){
  }
 }
}


File類相關方法(三)


File類示例(三)


import java.io.*;
public class FileTest3{
 public static void main(String args[]){
  try{
   File f1 = new File("E://Temp//JavaC","MyFile.txt");
   System.out.println(f1.length());
   System.out.println(f1.delete());
   System.out.println("等待...");
   Thread.sleep(3000);
   
   File f2 = new File("E://Temp//JavaC//MyDir");
   System.out.println(f2.mkdir());
   System.out.println("再等待...");
   Thread.sleep(3000);
   
   File f3 = new File("c:/");
   String[] files = f3.list();
   for(int i=0; i<files.length; i++){
    File f = new File(f3.getPath() + files[i]);
    if(f.isFile())
     System.out.println(f.getName());
   }
  }
  catch(Exception e){
  }
 }
}


過濾流
java.io包中提供類FilterlnputStream和FilterOutputStream分別作爲所有過濾輸入流和輸出流的父類。
FilterlnputStream和FilterOutputStream是抽象類,本身不能生成任何實例。
爲了使用一個過濾流,通常通過在構造方法的參數中指定所要連接的輸入/輸出流。如:FilterInputStream(InputStream in)FilterOutputStream(OutputStream out)
過濾流
FilterInputStream 類的子類包括
DataInputStream
DataOutputStream
BufferedInputStream
BufferedOutputStream
BufferedInputStreamBufferedOutputStream
BufferedInputStream和BufferedOutputStream實現了帶緩衝的過濾流。
把任意的輸入流或輸出流“捆綁”到緩衝流上會獲得性能的提高。


示例


import java.io.*;
public class BufferedStreamTest{
 public static void main(String arga[]){
  File f = null;
  FileInputStream in = null;
  FileOutputStream out = null;
  BufferedInputStream bfin = null;
  BufferedOutputStream bfout = null;
  byte[] b = {97,98,99};
  int len;
  try{
   f = new File("MyTest.txt");
   f.createNewFile();
   
   out = new FileOutputStream(f);
   bfout = new BufferedOutputStream(out);
   bfout.write(b);
   bfout.close();
   
   in = new FileInputStream(f);
   bfin = new BufferedInputStream(in);
   while((len=bfin.read()) != -1){
    System.out.println(len);
   }
   bfin.close();
  }
  catch(Exception e){
   System.out.println(e.getMessage());
  }
 }
}
DataInputStreamDataOutputStream
DataInputStream和DataOutputStream不僅能讀/寫數據流,而且還能讀/寫各種Java語言的內構類型(Built-in Types),如:boolean,int,float等。
這些內構類型在文件中的表示方式和它們在內存中一樣,無需多餘的轉換。


示例


import java.io.*;
public class DataStreamTest{
 public static void main(String args[]){
  try{
   String strData;
   DataOutputStream dataout = new DataOutputStream(new FileOutputStream("Data.txt"));
   dataout.writeBoolean(false);
   dataout.writeInt(123);
   dataout.writeDouble(55.89);
   
   DataInputStream datain = new DataInputStream(new FileInputStream("Data.txt"));
   System.out.println(datain.readBoolean());
   System.out.println(datain.readInt());
   System.out.println(datain.readDouble());
  }
  catch(Exception e){
   System.out.println(e.getMessage());
  }
 }
}


PrintStream類
打印流的作用是把Java語言的內構類型以其字符表示形式送到相應的輸出流。
System.out就是一個標準的打印流。


PrintStream使用示例


import java.io.*;
public class PrintStreamTest{
 public static void main(String args[]){
  try{
   PrintStream p = new PrintStream(new FileOutputStream("Print.txt"));
   p.println("how are you!");
   p.println("fine,thank you");
   p.println("中國人民站起來了!");
   p.println(true);
   p.println(28.65);
   p.println(321);
   System.out.println("輸出完畢!");
  }
  catch(Exception e){
   System.out.println(e.getMessage());
  }
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章