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());
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值