2016/04/25 (IO)

package com.wode.test;

import java.io.File;
import java.io.IOException;

public class Test {

 public static void main(String[] args) throws IOException {
  //创建文件夹
  File file = new File("c://","wode");
  //判断 是否有  这个文件夹 方法名为 exists();
  if (!file.exists()) {
   System.out.println("创建了文件夹");
   file.mkdir();
  }
  //创建 一个 文件
  File file1 = new File(file,"wenjian.txt");
  //判断文件 是否  存在
  if (!file1.exists()) {
   System.out.println("文件创建了");
   file1.createNewFile();
  }
  
  System.out.println(file1.isHidden());//isHidden()  是否为隐藏文件
  System.out.println(file1.isFile());// isFile()  是否为一个 标准的文件、
  System.out.println(file.getAbsoluteFile());//getAbsoluteFile()   获得路径
  
 }
}

package com.wode.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 *
 * @author Administrator
 *文件的复制
 */
public class Tset1 {
 public static void main(String[] args) {
  File file = new File("c:\","zoo.txt");//要复制的文件
  File file1 = new File("c:\zoo2.txt");//复制文件到什么地方去
  FileInputStream fis =null;
  FileOutputStream fos =null;
  try {
    fis = new FileInputStream(file);//输入要复制的信息
    fos = new FileOutputStream(file1);//输出要复制的信息
   int i = 0;
   //仅仅只需要读取  而并不要存储
   while ((i=fis.read())!=-1) {//read() 方法表示 从此输入流中读取一个数据字节。
    fos.write(i);// write(i) 方法 表示将指定字节写入此文件输出流。
   }
  } catch (IOException  e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   try {
    //最后 关闭流
    fis.close();
    fos.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
  
 }

}

package com.wode.test;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;

/**
 *
 * @author Administrator
 *找到以什么类型结尾的文件
 */
public class Test2 {

 public static void main(String[] args) {
  File file = new File(".\src\com\wode\test");//首先获得需要找什么地方
  //System.out.println(file.getAbsoluteFile());  获得当前的路径名
  //找到所有以java结尾的文件
  File[] files = file.listFiles(new FileFilter() {//FileFilter() 方法表示过滤文件
   
   @Override
   public boolean accept(File file) {
    
    return file.getName().endsWith(".java")&&!file.isHidden();
    // endsWith() 方法表示判断字符串是否为()中的后缀名
    //!file.isHidden() 表示不为隐藏的文件
   }
  });
  System.out.println(Arrays.toString(files));
 }
}

package com.wode.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 *
 * @author Administrator
 *读取文件的内容
 */
public class Tsts3 {

 public static void main(String[] args) {
  File file = new File("c:\","zoo.txt");//首先要有需要读取的文件
  InputStream ips =null;
  try {
    ips = new  FileInputStream(file);
   //FileInputStream() 方法表示通过打开一个到实际文件的连接来创建一个 FileInputStream
   int i = 0;
   byte[] bytes = new byte[(int) file.length()];
   //声明数组来存储 文件里的东西  数组长度为 文件的长度
   while((i=ips.read(bytes))!=-1){
    //read() 方法  从输入流中读取数据的下一个字节。
    String string = new String(bytes,"gbk");
    //bytes类型数组 以字符串的类型输出
    System.out.println(string);
   }
   
  } catch ( IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   try {
    ips.close();
    //最后 关闭流
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
  
 }

package com.wode.test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

/**
 *
 * @author Administrator
 * 把内容写入 文件中
 */
public class Test4 {

 public static void main(String[] args) throws IOException {
  File file = new File("c:\test.txt");//如果没有文件 系统会自动给你加
  Writer writer = new FileWriter(file, true);
  // Writer 写入字符流的抽象类
  // FileWriter 方法加上 true 表示继续存入 而不是覆盖
  BufferedWriter bfw = new BufferedWriter(writer);
  //BufferedWriter  表示对对流包装
  String s = "正义乃是冠冕堂皇之词";
  bfw.write(s);//write()  写入字符串
  bfw.flush();//flush() 方法表示  刷新该流的缓冲。
  writer.close();
  bfw.close();
  

 }
}

package com.wode.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.lang.reflect.Field;
import java.util.Arrays;

/**
 *
 * @author Administrator
 *字符流  来读取数据
 */
public class Test5 {

 public static void main(String[] args) throws IOException {
  File file = new File("e:\test.txt");//要读取的文件的地方
  Reader reader = new FileReader(file);
  //Reader 用于读取字符流的抽象类
  //FileReader 读取file的数据
  int i = 0;
  char[] chars = new char[(int) file.length()];
  while((i=reader.read(chars))!=-1){
   System.out.println(Arrays.toString(chars));
  }
 }
}

package com.wode.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 *
 * @author Administrator
 *包装流
 */
public class Test6 {

 public static void main(String[] args) {
  File file = new File("e:\test.txt");
  FileReader fileReader =null;
  BufferedReader bufferedReader =null;
  try {
    fileReader = new FileReader(file);//FileReader 读取文件
    bufferedReader = new BufferedReader(fileReader);
   //BufferedReader 包装 缓冲字符流
   try {
    //System.out.println(bufferedReader.readLine());
    //readLine() 读取一行文本  他只可以读取 一行 如果文件中换行了  他就无法读取
    
    //使用循环  读出文件里的所有文字
    int i = 0;
    while ((i=bufferedReader.read())!=-1) {
     System.out.println(bufferedReader.readLine());
    }
    
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   try {
    fileReader.close();
    bufferedReader.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
 }
}

package com.wode.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 *
 * @author Administrator
 *包装流
 */
public class Test6 {

 public static void main(String[] args) {
  File file = new File("e:\test.txt");
  FileReader fileReader =null;
  BufferedReader bufferedReader =null;
  try {
    fileReader = new FileReader(file);//FileReader 读取文件
    bufferedReader = new BufferedReader(fileReader);
   //BufferedReader 包装 缓冲字符流
   try {
    //System.out.println(bufferedReader.readLine());
    //readLine() 读取一行文本  他只可以读取 一行 如果文件中换行了  他就无法读取
    
    //使用循环  读出文件里的所有文字
    int i = 0;
    while ((i=bufferedReader.read())!=-1) {
     System.out.println(bufferedReader.readLine());
    }
    
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   try {
    fileReader.close();
    bufferedReader.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
 }
}

package com.wode.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 *
 * @author Administrator 读取一个 存储的对象
 */
public class Test8 {

 public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
  File file = new File("e:\test.txt");// 找到文件

  ObjectInputStream oips = new ObjectInputStream(new FileInputStream(file));
  // ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
  // FileInputStream 读取文件
  User user = (User) oips.readObject();
  //readObject()  从 ObjectInputStream 读取对象   对象的类、类的签名和类及所有其超类型的非瞬态和非静态字段的值都将被读取
  System.out.println(user.getName()+" "+user.getAge());

 }
}

package com.wode.test;

import java.io.Serializable;

public class User implements Serializable{
 //实现 Serializable 接口  表示User 可以被序列化
 private String name;
 private int age;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 

}

原文地址:https://www.cnblogs.com/chenyangpeng/p/5432620.html