Java高级特性-文件操作

时间:2021-03-05 00:58:24

通过Java程序完成对于文件和文件夹的创建,删除,移动,读取和写入等操作。

基本操作


import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;

public class TestFileOperation {
public static void main(String[] args) throws IOException {

/*创建文件夹*/
File fileDir = new File("./src/file_operation/files/");
fileDir.mkdir();
File fileDir2=new File("./src/file_operation2/");
fileDir2.mkdir();

/*创建文件*/
File txtFile=new File("./src/file_operation3/hi.txt");
txtFile.createNewFile();
System.out.println(txtFile.getName());

/*重命名文件*/
boolean isRename=fileDir2.renameTo(new File("./src/file_operation3"));
System.out.println(isRename ? "Rename file successfully!" : "Rename file failed");

/*创建文件*/
File logFile = new File("./src/file_operation/files/error.log");
File txFile=new File("./src/file_operation/files/hello.txt");
txFile.createNewFile();
Boolean isCreateSuccess = logFile.createNewFile();
System.out.print(isCreateSuccess ? "Create file successfully!" : "Create file failed");

/*获取文件夹内的文件*/
String[] fileList=fileDir.list();
for(int i=0; i<fileList.length;i++) {
System.out.println(fileList[i]); //error.log;hello.txt
}


/*删除文件、文件夹*/
File delFile=new File("file_operation3");

Boolean isDeleteSuccess = delFile.delete();
System.out.println(isDeleteSuccess? "Delete file successfully" : "Delete file failed");
}
}

文件流操作

  • 定义
    向文件里面写入或者如何读取一个文件里面的
  • 文件流
    一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
  • Java读写文件的IO流分两大类
  1. 字节流:基类是Reader和Writer;
  2. 字符流:基类是InputStream和OutPutStream。


Java文件流

  • 用法
  1. 创建文件对象:
    ​File file = new File("xxx.txt");​
  2. 用流装载文件,如果用字符流的话,则是:
    ​FileReader fileReader = new FileReader(file);​
  3. 如果用缓冲区,则用缓冲区装载流,用缓冲区是为了提高读写性能:
    ​BufferedReader bufferedReader = new BufferedReader(fileReader);​
  4. 开始读写操作:


while ((str = bufferedReader.readLine()) != null) {
stringBuffer.append(str);
}

例子


public static void readFileByCharacter(String filePath) {
File file = new File(filePath);
FileReader reader = null;
try {
reader = new FileReader(file);
int temp;
String result = "";
while ((temp = reader.read()) != -1) {
result += (char)temp;
}
System.out.print(result);
} catch (IOException e) {
e.getStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

运行结果

Java高级特性-文件操作