首页 > 编程语言 >java数据list写入文件

java数据list写入文件

时间:2024-05-31 17:14:19浏览次数:29  
标签:java String 写入 builder list fileName File return data

 /**
     * 生成数据文件
     *
     * @param data     数据
     * @param fileName 文件名
     * @return 数据文件对象
     * @throws IOException
     */
    private File generateDataFile(List<List<String>> data, String fileName) throws IOException {
        File file = new File(getTempFile(fileName));
        StringBuilder builder = new StringBuilder();
        String rowSeparator = "\n";
        String fieldSeparator = "\1";
        boolean rowSeparatorToEnd = false;
        boolean fieldSeparatorToEnd = false;
        int rowIndex = 0;
        for (List<String> row : data) {
            int colIndex = 0;
            for (String col : row) {
                builder.append(col);
                //行尾判断是否添加字段分隔符
                if (colIndex == row.size() - 1 && !fieldSeparatorToEnd) {
                    continue;
                }
                //添加字段分割符
                builder.append(fieldSeparator);
                colIndex++;
            }

            //内容尾判断是否添加换行符
            if (rowIndex == data.size() - 1 && !rowSeparatorToEnd) {
                continue;
            }
            //添加换行符
            builder.append(rowSeparator);
            rowIndex++;
        }
        FileUtils.writeStringToFile(file, builder.toString(), StandardCharsets.UTF_8);
        return file;
    }

    /**
     * 获取暂时文件的路径
     *
     * @param fileName 文件名
     * @return
     */
    public String getTempFile(String fileName) {
        String uuid = IdUtils.fastSimpleUUID();
        String tmpFileName = uuid + BaseConstant.SYMBOL_SLASH + fileName;
        File tmpFile = FileUtils.getFile(FileUtils.getTempDirectory(), tmpFileName);
        tmpFile.getParentFile().mkdirs();
        return tmpFile.getAbsolutePath();
    }

 

标签:java,String,写入,builder,list,fileName,File,return,data
From: https://www.cnblogs.com/hdwang/p/18224892

相关文章

  • 《Java练习题》Java编程题合集(全)
    《Java练习题》Java编程题合集(全) 前言:不仅仅要实现,更要提升性能,精益求精,用尽量少的时间复杂度和空间复杂度解决问题。初学者:《Java练习题》习题集一  https://www.cnblogs.com/jssj/p/11147566.html《Java练习题》习题集二  https://www.cnblogs.com/jssj/p/1122235......
  • JAVA 数据写入excel并发送邮件
    写这个的时候PLM系统还没有开发好,开发这个系统的外包团队每次开会都会被骂,感觉他们快顶不住了,估计完成不了了,烂尾之后应该会有很多需求扔给我。新领导上任之后说这边能不能发邮件,先熟悉一下怎么发邮件吧,这个功能大概率给我来做了流程:​先导包=>邮箱开启配置=>java写好配......
  • ### Cause: java.sql.SQLSyntaxErrorException: Expression #4 of SELECT list is not
    最近把线上数据库备份到本地数据库进行一些代码修改时候,发现代码连接本地数据库报错,线上数据库是正常的,后来查阅了一下是SELECT列表不在GROUPBY语句内且存在不函数依赖GROUPBY语句的非聚合字段,算是比较严谨的sql模式,如果需要解决的话需要修改一下my.ini配置页面,我先去自己安装......
  • Java定时任务Cron表达式
    Java学习中使用到了xxjob定时任务等,在配置的时候使用了Cron表达式来设置执行时间和频率1.表达式含义Cron表达式从左到右为6-7个字段,每个字段代表一个含义  */5****?表示每5秒执行一次 Cron一共7位,最后一位年份可以留空,一般可以写6位,第6位星期的取值范围为1-7,从星期日......
  • Spring 项目整合 Junit 一直报 java.lang.NullPointerException空指针异常
    1.异常信息java.lang.NullPointerException:Cannotinvoke"com.yue.service.StudentService.changeInfo()"because"this.studentService"isnull2.测试代码packagecom.yue.test;importcom.yue.config.DataSourceConfig;importcom.yue.service.Stud......
  • (D卷,100分)- 约瑟夫问题(Java & JS & Python & C)
    获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。题目描述输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m......
  • Java学习-Sentinel 1.8.4 规则持久化到Nacos
    文章目录一、前言二、快速体验1、部署sentinel2、SpringCloud中规则持久化到nacos3、sentinel控制台操作测试三、sentinel-dashboard源码修改1、`pom.xml`中添加依赖2、`application.properties`中添加nacos配置3、nacos配置新增NacosConfig新增NacosConfigUtil4、举......
  • JAVA基础_面向对象
    类和对象        面向对象(ObjectOriented)是Java的编程范式,是一种对现实世界理解和抽象的方法。其中包括类、对象(实例)、属性、方法、等概念。类:类是一个模板,是一个抽象,它描述一类对象的行为和状态。对象:是类的一个实例,是具体的,有状态和行为。 属性:对象的状态称为......
  • java调用科大讯飞离线语音合成SDK --内附完整项目
    科大讯飞语音开放平台基础环境搭建1.用户注册注册科大讯飞开放平台账号2.注册好后先创建一个自己的应用 创建完成后进入应用选择离线语音合成(普通版)可以看到我们开发需要的SDK,选择windowsMSC点击下载。3.选择你刚刚创建的应用,选择windows系统,选择离线语言合成(普通版)......
  • Java基础之JVM
    一、Java中的内存管理1、程序,无论是代码还是数据,都需要存储在内存中。JVM为Java程序提供并管理所需要的内存空间2、JVM内存分为堆(heap)、栈(stock)、方法区(method)三个区域,分别用于储存不同的数据。3、HotSpot是SunJDK和OpenJDK中所带的虚拟机(SunJDK和OpenJDK除了注释,代码实现......