近日在研究Java,在Java的IO里有点困惑,可能这流那流太多了吧,今日决定好好的把这些流给整理一下,来结束这几天的原地踏步走啊,呵呵,搞了我好几天了,同时也希望高手来指点指点。

     Java IO操作主要指的是使用Java进行输入,输出操作,Java所有的操作类都存放在Java.io包中,使用时要导入此包。

     在整个Java.io包中最要的就是5个类和一个接口,如下:

                    类:File,Inputstream,Outputstream,Reader,Writer。

                    接口:Serializable。

     在Java.io包中还有一个类:RandomAccessFile 随机读取类也要注意,他可以随机地读取一个文件指定位置的数据。

 

     因为输入输出除了和键盘打交道外,最重要的就是操作文件,读取文件,把数据存储到文件里,下面先从文件File类说起。

 

    一.File类

       1.构造方法:

       @1   public File(String pathname);

       例如:File f=new File("f://java//hello.txt");    //注意在Java里路径是/,且要写成//,转移字符;

       那么现在就可以使用这个f对象了,使用File类的方法来操作这个文件了,这个构造方法是最常用的,还有以下几个构造方法:

 

       @2   public File(File parent,String child)   //根据 parent 抽象路径名(一般为目录)和 child 路径名字符串创建一个新 File 实例。

       例如:

File f=new File("F://myjava//");
               File ff=new File(f,"hello.txt");
               那么此时也表示f://java//hello.txt这个文件.
 
       @3   public File(String parent,String child)                      //这个是把文件路径的目录和文件名分开表示来创建一个File实例
       例如  File f=new File("f://myjava","hello.txt");

 

file: URI 转换为一个抽象路径名来创建一个新的 File

        例如   File f=new File(new URL("http://www.qq.com"));       //这时候就可以操作远程文件了,但是只能读取,不能写

      上面四个就是File的构造方法,创建文件实例后就要操作它,下面就是File类的一些重要方法和常量:

public static final String pathSeparator        //表示路径的分隔符,window下是‘;’;
      public static final String separator                //表示路径的分隔符,window下是‘/’;
      public boolean createNewFile() throws IOException   //创建一个新的文件,注意此方法可能抛出异常
      public boolean delete()  //删除一个文件
      public boolean exists()  //判断一个文件或者目录是否存在
      public boolean isFile()//判断是不是文件
      public boolean isDirectory()//判断是不是目录
      public boolean canRead()//判断文件能不能读
      public boolean canWrite()//判断文件能不能写
      public int compareTo(File pathname)//比较两个路径是否相同
      public long length()//获取文件的长度
      public long lastModified()//获取文件最后一次修改的时间
      public String[] list()//列出指定目录里的全部内容,只是列出名称
      public File[] listFiles()//列出指定目录里的全部内容,并且是文件的路径
      public boolean mkdir()//创建一个目录
      public boolean renameTo(File dest)//为已有的文件重命名
      public String getName()//获取文件名,返回由此抽象路径名表示的文件或目录的名称
      public String getParent()//返回此抽象路径名父目录的路径名字符串
      public String getPath()//将此抽象路径名转换为一个路径名字符串

 

实例

import java.io.File;                                             
import java.io.IOException;public class FileClassDemo {
 public static void main(String[] args){
  File f=new File("F://myjava//test.java");            //用字符串创建一个实例 
  if(!f.exists()){                                                     //判断这个抽象路径表示的文件是否存在
   try{
    f.createNewFile();                                            //如果不存在,则创建这文件
   }catch(IOException e){                                    //创建文件可能抛出IOException异常
    e.printStackTrace();
   }
  }                                                                
   File dest=new File("F://myjava//welcome.java"); //重名这个文件
   f.renameTo(dest);
    System.out.println("f.getName():"+f.getName());          //test.java
  System.out.println("f.getParent():"+f.getParent());       //f:/myjava  System.out.println("f.getPath():"+f.getPath());            //f:/myjava/test.java
  System.out.println("f.canRead():"+f.canRead());          //true  System.out.println("f.canWrite():"+f.canWrite());         //true
  System.out.println("f.length():"+f.length());                 //
  System.out.println("f.lastModified():"+f.lastModified());//
  System.out.println("f.isFile():"+f.isFile());                     //true
  System.out.println("f.isDirectory():"+f.isDirectory());   //false
  f.detele();                                                                    //删除这个文件
 }}

 

 

       File类里还有一些其他方法,不在详述。