当前位置: 首页 > 知识库问答 >
问题:

如何在所有拆分的CSV文件中存储头?

柳俊彦
2023-03-14
import java.io.*;
import java.util.Scanner;
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class split {

    public static void main(String args[]) {
        try {
            String inputfile = "E:/Sumit/csv-splitting-2/Proposal_Details__c.csv";
            System.out.println("Input Path is :- " + inputfile);
            
            double nol = 100000.0;
            
            File file = new File(inputfile);
            Scanner scanner = new Scanner(file);
            
            int count = 0;
            while (scanner.hasNextLine()) {
                scanner.nextLine();
                count++;
            }
            System.out.println("Lines in the file: " + count);

            double temp = (count / nol);
            int temp1 = (int) temp;
            int nof = 0;
            if (temp1 == temp) {
                nof = temp1;
            } else {
                nof = temp1 + 1;
            }
            System.out.println("No. of files to be generated :" + nof);

            FileInputStream fstream = new FileInputStream(inputfile);
            DataInputStream in = new DataInputStream(fstream);

            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;

            for (int j = 1; j <= nof; j++) {
                String outputpath = "E:/Sumit/csv-splitting-2/";
                String outputfile = "File-2-Proposal_Details__c" + j + ".csv";

                System.out.println(outputpath + outputfile);
                FileWriter fstream1 = new FileWriter(outputpath + outputfile);

                BufferedWriter out = new BufferedWriter(fstream1);
                for (int i = 1; i <= nol; i++) {
                    strLine = br.readLine();
                    if (strLine != null) {
                        out.write(strLine);
                        if (i != nol) {
                            out.newLine();
                        }
                    }
                }
                out.close();
            }
            in.close();
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
} 

共有1个答案

廖弘量
2023-03-14

假设您的第一行是头,您可以有一个字符串头;来获取第一行的读数,例如:header=br.readline();

nof(我假定这意味着number_of_files)的for循环中,创建新文件时总是将头作为第一行添加。

应该是这样的:

    null
    null
    null
 类似资料:
  • 请看下面这个数据文件的架构 > 问题1:我需要将第一列数据分成两列,这样整数数据应该在一列中,数组数据应该在另一列中。不确定如何在Spark/Scala中实现?任何关于这一点的指示都将是有帮助的。 当我试图将此数据文件写入csv文件时,我得到了以下错误

  • 问题内容: 我已经将CSV文件(大约10,000行;每行具有300列)存储在LINUX服务器上。我想将此CSV文件分解为500个CSV文件,每个文件20条记录。(每个具有与原始CSV中相同的CSV标头) 有什么linux命令可以帮助这种转换吗? 问题答案: 使其成为一个函数。您现在可以打电话 发现于:http : //edmondscommerce.github.io/linux/linux-sp

  • 给定一个文件夹,其中包含多个具有不同列长度的csv文件 必须使用python将它们合并到单个csv文件中,并将文件名打印为一列。 输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0 输出:

  • 问题内容: 是否有任何适用于Node.js的Amazon S3客户端库,允许列出S3存储桶中的所有文件? 最著名的aws2js和knox似乎没有此功能。 问题答案: 实际上,aws2js支持通过方法调用以较低级别列出存储桶中的对象。为此,必须传递在Amazon S3 REST API页面 上记录的参数: 上面片段中的变量包含存储桶中所有对象的列表。

  • 问题内容: 如何将逗号分隔的字符串拆分为存储过程中的字符串,并将其插入表字段中? 使用Firebird 2.5 问题答案: 这里有一个示例如何分割字符串并将子字符串写入表中:

  • 我正在使用Ubuntu,希望将一个包含图像的文件夹(30k图像)拆分为不同的文件夹。但是,我想对它们进行排序(而不仅仅是拆分成更小的子文件夹)。我有一个文件,其中包含图像的文件夹目标信息。该文件的结构如下: 123.jpg,1 124.jpg,2 125.jpg,3 这应该解释为:image 123.jpg到文件夹1,image 124.jpg到文件夹2,image 125.jpg到文件夹3。 在