Java中的IO基本用法

先贴一下我在作业中用到的三种文件输入辅助类、三种文件输出辅助类

public class BuffIn implements InHelp{
  private BufferedReader bufferedReader;

  public BuffIn(String path) {
    try {
      bufferedReader = new BufferedReader(
              new InputStreamReader(new FileInputStream(path), "UTF-8"));
    }catch (IOException e){
      System.err.println("请提供正确路径");
      PathException e2 = new PathException(path,"路径地址错误");
      Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public String read() throws IOException {
    TimeCounter.start();
    String s = bufferedReader.readLine();
    TimeCounter.pause();
    return s;
  }

  @Override
  public void shut() throws IOException {
    bufferedReader.close();
  }
}

public class BuffreaderIn implements InHelp{
  private BufferedReader bufferedReader;
  public BuffreaderIn(String path) {
    try {
      bufferedReader = new BufferedReader(new FileReader(path));
    }catch (IOException e){
      System.err.println("请提供正确路径");
      PathException e2 = new PathException(path,"路径地址错误");
      Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public String read() throws IOException {
    TimeCounter.start();
    String s = bufferedReader.readLine();
    TimeCounter.pause();
    return s;
  }


  @Override
  public void shut() throws IOException {
    bufferedReader.close();
  }
}

public class ScannerIn implements InHelp{
  private Scanner scanner;
  private java.io.File file;
  public ScannerIn(String path) {
    try {
      file = new java.io.File(path);
      scanner = new Scanner(file);
    }catch (IOException e){
      System.err.println("请提供正确路径");
      exception.PathException e2 = new exception.PathException(path,"路径地址错误");
      logs.Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public String read() throws IOException {
    TimeCounter.start();
    if(!scanner.hasNextLine()) return null;
    String s = scanner.nextLine();
    TimeCounter.pause();
    return s;
  }

  @Override
  public void shut() throws IOException {
    scanner.close();
  }
}
public class BuffOut implements OutHelp{
  private BufferedWriter bufferedWriter;
  private FileOutputStream fileOutputStream;
  public BuffOut(String path) {
    try {
      fileOutputStream = new FileOutputStream(path);
      bufferedWriter = new BufferedWriter(
              new OutputStreamWriter(fileOutputStream, "UTF-8"));
    }catch (IOException e){
      System.err.println("请提供正确路径");
      PathException e2 = new PathException(path,"路径地址错误");
      Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public void write(String s) throws IOException {
    TimeCounter.start();
    bufferedWriter.write(s);
    TimeCounter.pause();
  }

  @Override
  public void shut() throws IOException {
    bufferedWriter.close();
    fileOutputStream.close();
  }
}

public class StreamOut implements OutHelp{
  private OutputStreamWriter outputStreamWriter;
  private FileOutputStream fileOutputStream;

  public StreamOut(String path) {
    try {
      fileOutputStream = new FileOutputStream(path);
      outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
    }catch (IOException e){
      System.err.println("请提供正确路径");
      PathException e2 = new PathException(path,"路径地址错误");
      Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public void write(String s) throws IOException {
    TimeCounter.start();
    outputStreamWriter.write(s);
    TimeCounter.pause();
  }

  @Override
  public void shut() throws IOException {
    outputStreamWriter.close();
    fileOutputStream.close();
  }
}

public class WriterOut implements OutHelp {
  private FileWriter fileWriter;

  public WriterOut(String path) {
    try {
      fileWriter = new FileWriter(path);
    }catch (IOException e){
      System.err.println("请提供正确路径");
      PathException e2 = new PathException(path,"路径地址错误");
      Logs.logger.error(e2.getMessage());
    }
  }

  @Override
  public void write(String s) throws IOException {
    TimeCounter.start();
    fileWriter.write(s);
    TimeCounter.pause();
  }

  @Override
  public void shut() throws IOException {
    fileWriter.close();
  }
}

 

 主要的类如下:

     1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

     2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

     3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

     4.Reader(文件格式操作):抽象类,基于字符的输入操作。

     5. Writer(文件格式操作):抽象类,基于字符的输出操作。

     6. RandomAccessFile(随机文件操作):一个独立的类,直接继承至Object.它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。

针对一些频繁的设备交互,Java语言系统预定了3个可以直接使用的流对象,分别是:

·        System.in(标准输入),通常代表键盘输入。

·        System.out(标准输出):通常写往显示器。

·        System.err(标准错误输出):通常写往显示器。

 IOException异常类的子类
    1.public class  EOFException :   非正常到达文件尾或输入流尾时,抛出这种类型的异常。    

      2.public class FileNotFoundException:   当文件找不到时,抛出的异常。

      3.public class InterruptedIOException: 当I/O操作被中断时,抛出这种类型的异常。


 

posted @ 2019-06-24 22:25  ACforever  阅读(971)  评论(0编辑  收藏  举报