美文网首页java干货Java学习笔记java
【Java】I/O:File、FileWriter(Buffer

【Java】I/O:File、FileWriter(Buffer

作者: wuchaooooo | 来源:发表于2016-08-05 11:38 被阅读126次

I/O类结构

IO类结构.png

创建文件夹

public static void creatFolder(String folderPath) {
  File file  = new File(folderPath);
  file.mkdirs();
  //注意mkdirs()和file.mkdir()的区别:
}

mkdirs()和mkdir()的区别:
如果是mkdir(),那么传入的路径folderPath的每一个文件夹都是必须存在的。(比如我们传入D:\IdeaProjects\test,我们的目的是创建一个test的文件夹,如果IdeaProjects这个文件夹不存在,那么test这个文件夹也不会被创建)。但是如果是mkdirs(),我们还是传入D:\IdeaProjects\test,目的是创建test文件夹,如果IdeaProjects这个文件夹不存在的话,程序会帮我们创建,然后在这个文件夹的下面创建test文件夹。

创建文件

public static boolean createFile(String fileName) {
  File file = new File(fileName);
  boolean isSuccess = false;
  try {
    isSuccess = file.createNewFile();
  } catch(IOException e) {
      e.printStackTrace;
  }
  return isSuccess;
}

创建文件夹的时候,我们也用到了File这个类。这里要注意的是,我们调用createNewFile()这个方法的时候(该方法的返回类型是布尔型),可能会出现异常(比如:要新建的文件名和已经存在的文件名重名),所以我们要在这里加上IO异常处理(try,catch语句)。另外,这里涉及到了绝对路径和相对路径。如果我们传入的是绝对路径(比如D:\IdeaProjects\test,那么没什么问题,会在我们指定的路径下创建test文件),但是如果我们传入的是相对路径(比如test),那么test这个文件就会新建在你当前java文件所在的工程的目录下。

在文件内写入内容

public static void writeToFile(String fileName) {
  File file = new File(fileName);
  BufferedWriter bufferedWriter = null;
  try {
    FileWriter writer = new FileWriter(file);
    bufferedWriter = new BufferedWriter(writer);
    bufferedWriter.write("你好");
    bufferedWriter.newLine;
    bufferedWriter.write("nihao");
    bufferedWriter.newLine;
    bufferedWriter.write("hello");
  }catch(IOException e) {
    e.printStackTrace();
  }finally {
    if (bufferedWriter != null) {
      try {
        bufferedWriter.close();
      }catch(IOExcption e) {
        e.printStackTrace();
      }
    }
  }
}

File、FileWriter、BufferedWriter:File类的话其实是一个一个字节传,然后用FileWriter类包装一下,变成一个一个字符传,然后再用BufferedWriter类包装一下,变成一块一块传(可以理解为多字符(或者说字符串)传)。这样子提高了IO流的传输速率。毕竟IO传输速率对整个程序的优化至关重要。

列出目录下的所有文件(包括文件夹和文件)

public static void listFiles(String folderPath) {
  File file = new File(folderPath);
  for (String fileName : file.list()) {
    System.out.println(fileName);
  }
}

读取文件内容

public static void readFromFile(String fileName) {
  File file = new File(fileName);
  BufferedReader bufferedReader = null;
  
  try {
    FileReader fileReader = new FileReader(file);
    bufferedReader = new BufferedReader(fileReader);
    String line  = bufferedReader.readline();
    while (line != null) {
      System.out.println(line);
      line = bufferedReader.readLine();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

删除文件

public static void deleteFile(String fileName) {
  File file = new File(fileName);
  file.delete();
}

拷贝文件

public static void copyFile(String originFile, String newFile) {
  File file1 = new File(originFile);
  File file2 = new File(newFile);
  BufferedReader bufferedReader = null;
  BufferedWriter bufferedWriter = null;

  try {
    FileReader fileReader = new FileReader(file1);
    FileWriter fileWriter = new FileWriter(file2);
    bufferedReader = new BufferedReader(fileReader);
    bufferedWriter = new BufferedWriter(fileWriter);
    String line = bufferedReader.readline();
    if (line != null) {
      bufferedWriter.write(line);
      line = bufferedReader.readLine();
    }
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
      try {
        if (bufferedReader != null) {
          bufferedReader.close();
        }
        if (bufferedWriter != null) {
          bufferedWriter.close();
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
  }
}

相关文章

  • 【Java】I/O:File、FileWriter(Buffer

    I/O类结构 创建文件夹 mkdirs()和mkdir()的区别:如果是mkdir(),那么传入的路径folder...

  • NIO-Buffer使用

    ByteBuffer的概述 Buffer是java NIO的通道与I/O通信的入口,Buffer是通道向I/O发送...

  • Direct I/O 与 Buffer I/O

    1、Buffer I/O (1)描述 数据在被写入的时候,默认使用的Buffer I/O。使用Buffer I/O...

  • 使用FileWriter写文件

    package textMyself; //使用FileWriter写文件 import java.io.File...

  • Java-I/O学习(4)

    Java-I/O学习(4) File Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可...

  • Java--File I/O

    java.io.File类用于表示文件(目录)。用来将文件或者文件夹封装成对象。File类只用于表示文件(目录)的...

  • Java-0023-File I/O

    2016.8.1 创建一个抽象的文件,fileName为文件的绝对地址或相对地址对这个抽象的文件对象操作可以产生实...

  • Java自学-I/O File类

    Java 的File类,以及常用方法 文件和文件夹都是用File代表 步骤 1 : 创建一个文件对象 使用绝对路径...

  • File I/O 同步I/O

    fsync() and fdatasync() 对fsync()的调用确保将与文件描述符fd映射的文件相关的所有脏...

  • File I/O Multiplexed I/O

    select() select()的调用会一直阻塞,直到给定的文件描述符可以执行I/O,或是已过了可选指定的超时。...

网友评论

    本文标题:【Java】I/O:File、FileWriter(Buffer

    本文链接:https://www.haomeiwen.com/subject/yishsttx.html