1 File
用于文件和目录的创建,文件的查找和删除.
- 格式
File(filePath[, fileName])
使用的包。
package com.xdq.func;
import java.io.File;
import java.text.DecimalFormat;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
1.0 新建文件夹
/**
* 新建文件
*
* @param filePath 文件路径
* @return 提示信息
*/
public String fileCreation(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
System.out.println("文件夹不存在");
file.mkdirs();
System.out.println("新建文件夹");
return "新建文件夹";
} else {
return "文件夹已存在";
}
}
1.2 删除文件夹
/**
* 删除当前文件夹
*
* @param folderPath 文件夹路径
* @return 提示信息
*/
public String folderDelete(String folderPath) {
File file = new File(folderPath);
if (!file.exists()) {
return "文件夹不存在";
} else {
// 删除当前文件夹
file.delete();
return "删除文件夹" + folderPath;
}
}
1.3 删除文件夹中文件
/**
* 删除子文件
*
* @param filePath
* @return 提示信息
*/
public String fileDelete(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
return "文件夹不存在";
} else {
File[] filePathLi = file.listFiles();
String s[] = file.list();
// 删除文件下所有文件
for (int i = 0; i < filePathLi.length; i++) {
if (filePathLi[i].exists()) {
filePathLi[i].delete();
}
}
return "文件已删除";
}
}
1.4 获取文件夹所有文件
/**
* 获取文件夹文件列表
*
* @param filePath 文件路径
* @return 提示信息或文件名列表
*/
public List<String> fileList(String filePath) {
File file = new File(filePath);
String fileName = null;
List<String> fileNameLi = new ArrayList();
if (!file.exists()) {
String[] returnArr = { "文件夹不存在" };
List returnLi = Arrays.asList(returnArr);
return returnLi;
} else {
File[] filePathLi = file.listFiles();
for (int i = 0; i < filePathLi.length; i++) {
if (filePathLi[i].isDirectory()) {
System.out.println("folder path:" + filePathLi[i].getAbsolutePath());
// 递归查询文件夹文件
fileList(filePathLi[i].getAbsolutePath());
} else if (filePathLi[i].isFile()) {
fileName = filePathLi[i].getName();
if (fileName.endsWith("txt")) {
System.out.println("text file");
}
fileNameLi.add(fileName);
}
}
String fileLi[] = file.list();
System.out.println("file list:" + fileNameLi);
return fileNameLi;
}
}
2 FileInputStream
package basic.datatype.filesystem;
import java.util.Arrays;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileSystemTest{
/**
* 读取文件内容
* @param path
*/
public void readFile(String path){
File file = new File(path);
File fileLi[] = file.listFiles();
for(int i=0;i<fileLi.length;i++){
System.out.format("文件名:"+fileLi[i].getName()+"\n");
System.out.format("文件路径:"+fileLi[i]+"\n");
File fileData = new File(fileLi[i].toString());
try{
FileInputStream fis = new FileInputStream(fileData);
int n = 0;
byte[] bytes = new byte[1024];
while(n!=-1){
n = fis.read(bytes);
}
fis.close();
System.out.format("String data:"+new String(bytes)+"\n");
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args){
String path = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/files";
String path1 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles";
String path2 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/test.txt";
String path3 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/testOne.txt";
String path4 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/files/en_words.txt";
String path5 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/en_words.txt";
FileSystemTest fst = new FileSystemTest();
fst.readFile(path);
}
}
3 FileOutputStream
package basic.datatype.filesystem;
import java.util.Arrays;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileSystemTest{
/**
* 文件内容写入:Int方式
* @param path
*/
public void writeFileByInt(String path){
File file = new File(path);
try{
file.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
try{
FileOutputStream fos = new FileOutputStream(file, false);
String str = "hello world!";
for(int i=0;i<str.length();i++){
int b = (int)str.charAt(i);
fos.write(b);
}
fos.close();
System.out.format("写入完成!\n");
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 文件内容写入:Bytes方式
* @param path
*/
public void writeFileByBytes(String path){
File file = new File(path);
try{
file.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
try{
FileOutputStream fos = new FileOutputStream(file, true);
String str = "hello world!";
fos.write(str.getBytes(), 1, 3);
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 文件复制
* @param path
*/
public void copyFile(String path1, String path2){
File sourceFile = new File(path1);
File desFile = new File(path2);
try{
desFile.createNewFile();
}catch(Exception e){
e.printStackTrace();
}
try{
FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(desFile);
byte[] bufferBytes = new byte[fis.available()];
fis.read(bufferBytes);
fos.write(bufferBytes);
fos.flush();
fos.close();
fis.close();
System.out.format("复制成功!");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
String path = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/files";
String path1 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles";
String path2 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/test.txt";
String path3 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/testOne.txt";
String path4 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/files/en_words.txt";
String path5 = "/home/xdq/xinPrj/java/javaTest/JavaFunctionTest/src/main/resources/newfiles/en_words.txt";
FileSystemTest fst = new FileSystemTest();
fst.writeFileByInt(path2);
fst.writeFileByBytes(path3);
fst.copyFile(path4, path5);
}
}
4 小结
序号 | 文件系统 | 描述 |
---|---|---|
1 | File | 文件及文件目录创建,查询,删除 |
2 | FileInputStream | 文件内容读取,缓存流读取 |
3 | FileOutputStream | 文件内容写入,缓存流写入 |
【参考文献】
[1]http://baijiahao.baidu.com/s?id=1600984799323133994&wfr=spider&for=pc
[2]https://blog.csdn.net/ai_bao_zi/article/details/81097898
[3]https://blog.csdn.net/qq_41750093/article/details/86137130