Java练习题 - 文件

  • 在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:
    路径名:c:\temp\def.txt
public class Test {

  /**
   * @param args
   */
  public static void main(String[] args) {
      // TODO Auto-generated method stub
      File f = new File("c:\\temp");
  
      String[] s = f.list();
      for(String o :s){
          System.out.println("文件名"+o);
          System.out.println("绝对路径"+f.getAbsolutePath()+"\\"+o);
          >System.out.println("=================================");
      }
      
  }
}
  • 编写一个java程序实现文件复制功能,要求将d:/io/copysrc.doc中的内容复制到d:/io/copydes.doc中。
public class FileCopy {
  public static void main(String args[]){
      //实例化File对象
      File f1 = new File("d:/io/copysrc.doc");
      File f2 = new File("d:/io/copydes.doc");
      FileInputStream fr = null;
      FileOutputStream fw = null;
      
      try {
          //实例化文件输入流和输出流对象
          fr = new FileInputStream(f1);
          fw = new FileOutputStream(f2);
          
          byte[] cbuf = new byte[fr.available()];
          //通过输入流,读取原文件中的数据到字节数组cbuf中
          fr.read(cbuf);
          //将字节数组中的数据,写到文件输出流中
          fw.write(cbuf); 
          System.out.println("文件复制成功");
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
      finally{
          try {
              //关闭输入输出流
              fr.close();
              fw.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
          
      }   
  }

}
  • 创建c:/test.txt文件并在其中输入"hello world"
    创建一个输入流读取该文件中的文本
    并且把小写的l变成大写L再利用输出流写入到d:\test.txt中
    实现步骤:1.在本地硬盘C盘下创建一个文件test.txt
    2.创建一个包含main()方法的类,并在main中编写代码
    3.运行代码并且测试结果
    实现过滤器的功能
    效果显示:


public class Test {
  
  public static void main(String[] args) {
      FileReader f;
      String s="";
      BufferedReader br=null;
      try {
          f = new FileReader("c:\\test.txt");
           br = new BufferedReader(f);
          s = br.readLine(); 
          System.out.println("源文件"+s);
          s=s.replace("l", "L");
          
      } catch (FileNotFoundException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }finally{
          try {
              br.close();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
      BufferedWriter bw =null;
      System.out.println(s);
      try {
          FileWriter fw = new FileWriter("d:\\test.txt");
           bw = new BufferedWriter(fw);
          bw.write(s);
          
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }finally{
          try {
              bw.close();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
  }
}
  • 在程序中创建一个Student类型的对象,并把对象信息保存到d:/io/student.txt文件中,然后再从文件中把Student对象的信息读出显示在控制台上,Student类的描述如下:
class Student implements Serializable{

  private static final long serialVersionUID = 1L;
  String id;
  String name;
  String birth;
  
  public Student(String id,String name,String birth){
      this.id = id;
      this.name = name;
      this.birth = birth;
  }
  
  public String toString(){
      return "id="+id+" name="+name+" birth="+birth;
  }

}
public class SerializationExercise {
  public static void main(String args[]){
      Student s1 = new Student("A001","Lucy","1986-06-06");
      
      try {
          FileOutputStream fos = new FileOutputStream("d:\\io\\student.txt");
          ObjectOutputStream oos = new ObjectOutputStream(fos);
          
          System.out.println("对象序列化...");
          oos.writeObject(s1);
          
          oos.flush();
          oos.close();
      } catch (FileNotFoundException e1) {
          System.out.println(e1.getMessage());
      } catch (IOException e2) {
          System.out.println(e2.getMessage());
      }
      
      try {
          FileInputStream fis = new FileInputStream("d:\\io\\student.txt");
          ObjectInputStream ois = new ObjectInputStream(fis);
          
          System.out.println("反序列化...");
          Student ss1 = (Student)ois.readObject();            
          System.out.println(ss1);            
          ois.close();
      } catch (FileNotFoundException e) {
          System.out.println(e.getMessage());
      } catch (IOException e) {
          System.out.println(e.getMessage());
      } catch (ClassNotFoundException e) {
          System.out.println(e.getMessage());
      }
      
  }
}

你可能感兴趣的:(Java练习题 - 文件)