Java文件系统

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 小结

序号文件系统描述
1File文件及文件目录创建,查询,删除
2FileInputStream文件内容读取,缓存流读取
3FileOutputStream文件内容写入,缓存流写入

【参考文献】
[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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值