各种实用操作文件工具方法--笔记(java语言)

该文提供了一系列Java文件操作工具类,包括按行读取TXT,批量生成指定名称的文件,使用ApachePOI创建和写入Excel内容,读取和修改Excel数据,以及Excel转CSV。此外,还提到了使用commons-io读取TXT和Hutool读取本地文件获取byte流的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记,操作文件工具类大全,所有代码功能目录都标注了,有需要找目录; 本文持续更新!

IO

JDK原生

获取Txt内容(按行读string)

  /**
    txtPath: 文件路径
    return : 行内容列表
  */
    public static List<String> getTxt(String txtPath){

        File file = new File(txtPath);
        BufferedReader reader = null;
        String temp = null;
        List<String> resList = new ArrayList<>();
        try {
            reader = new BufferedReader(new FileReader(file));
            while ((temp = reader.readLine()) != null) {
                System.out.println(temp);
                resList.add(temp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return resList;
    }

批量生成指定名称文件

**应用场景:想生成一批叫做 测试-1.txt、测试-2.txt、测试-3.txt **

    /**
     * 批量创建文件
     * @param createPath 文件路径
     * @param filePrefix 文件前缀 (测试)
     * @param suffix 文件后缀 (txt)
     * @param startNum 起始编号 (1)
     * @param endNum 结束编号 (10)
     */
    @Override
    public void batchCreate(String createPath, String filePrefix,String suffix, Integer startNum, Integer endNum) {
        for (int i = startNum;i<=endNum;i++){
            File file = new File(createPath+File.separator+filePrefix+"-"+i+"."+suffix);
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

Excel-poi

     //maven
        <!-- poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>


创建Excel 写入内容
    //生成文件位置
    private static final String PATH="D:\\3\\";

    public static void testWrite() throws Exception {

        Workbook workbook = new HSSFWorkbook();
        //创建一个工作表sheet
        Sheet sheet = workbook.createSheet("第一个sheet");
        //创建一行(0表示创建的是第一行)
        Row row1 = sheet.createRow(0);
        //创建一个单元格(这个单元格表示的是第一行第一列的单元格,即坐标(1,1))
        Cell cell11 = row1.createCell(0);
        //赋值
        cell11.setCellValue("坐标(1,1)");
        //在创建一个  坐标  1,2
        Cell cell = row1.createCell(1);
        cell.setCellValue("坐标 1,2");
        //生成Excel文件(使用io流),注:文件后缀要与excel版本对应
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "test.xls");
        //写入
        workbook.write(fileOutputStream);
        //文件写完后关闭流
        fileOutputStream.close();
    }

读取Excel内容


    /**
     * 读取Excel 某列数据
     * @param filePath excel文件路径
     * @param cellNum 获取的列数  1开始
     * @return
     */
    public static List<String> readExcel(String filePath,int cellNum) {
        List<String> resList =new ArrayList<>();
        String path = filePath;
        Workbook workbook = ExcelUtil.getWorkbook(path);
        Sheet sheetAt = workbook.getSheetAt(cellNum-1);
        //获取最大行数
        int rowNum = sheetAt.getPhysicalNumberOfRows();
        for (int i = 1; i < rowNum; i++) {
            Row row1 = sheetAt.getRow(i);
            String s1 = row1.getCell(0).toString();
            resList.add(s1);
        }

        return  resList;
    }

    //获取读取excel对象
    public static Workbook getWorkbook(String filePath) {
        Workbook wb = null;
        if (filePath == null) {
            return null;
        }
        String extString = filePath.substring(filePath.indexOf('.'));
        InputStream is = null;
        try {
            is = new FileInputStream(filePath);
            if (".xls".equals(extString)) {
                return wb = new HSSFWorkbook(is);
            } else if (".xlsx".equals(extString)) {
                return wb = new XSSFWorkbook(is);
            } else {
                return wb = null;
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        return wb;
    }

    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
        List<String> list = ExcelUtil.readExcel("D:\\3\\其它\\military.xlsx", 1);
        for (String s : list) {
            System.out.println(s);
        }


    }



修改Excel内容
    public static void main(String[] args) {
        Workbook workbook = getWorkbook("D:/3/其它/military.xlsx");
        Sheet sheetAt = workbook.getSheetAt(0);
        //System.out.println(sheetAt);
        Row row = sheetAt.getRow(1);
        //System.out.println(row);
        Cell cell = row.getCell(2);
        System.out.println(cell);
        cell.setCellValue("中中");
        try {
            FileOutputStream fos = new FileOutputStream("D:/3/其它/military.xlsx");
            workbook.write(fos);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Excel转csv
    <dependencies>
		<dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls</artifactId>
            <version>12.11.8</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
    
          
        // excel 转csv
    public static void excelToCsv(String excelPath,String csvPath){
        //创建Workbook类的对象
        com.spire.xls.Workbook workbook = new com.spire.xls.Workbook();
        //加载Excel
        workbook.loadFromFile(excelPath);

        //获取第一张工作表sheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //保存为CSV
        sheet.saveToFile(csvPath, ",", Charset.forName("UTF-8"));
    }

commons-io工具包

// maven
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.11.0</version>
            </dependency>

读取txt文本

    private static String txtPath = "D:\\3\\test.txt";

    public static void main(String[] args) throws IOException {
        File file = new File(txtPath);
        byte[] bytes = FileUtils.readFileToByteArray(file);
        System.out.println(new String(bytes));
	}

hutool工具包

// maven
		<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-core</artifactId>
            <version>5.7.20</version>
        </dependency>

读取本地文件获取byte流

        // 本地文件路径
        String filePath = "D:\\3\\后台开发项目\\entity.json";
        File file = new File(filePath);
        byte[] bytes = FileUtil.readBytes(file);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值