分割文件Java

分割文件Java,java,apache-camel,Java,Apache Camel,我想剪切一个文本文件。 我想把文件切成50行乘50行 例如,如果文件是1010行,我将恢复21个文件 我知道如何计算文件数,行数,但一旦我写了,它就不起作用了 我使用Camel Simple(Talend),但它是Java代码 private void ExtractOrderFromBAC02(ProducerTemplate producerTemplate, InputStream content, String endpoint, String fileName, HashMap<

我想剪切一个文本文件。 我想把文件切成50行乘50行

例如,如果文件是1010行,我将恢复21个文件

我知道如何计算文件数,行数,但一旦我写了,它就不起作用了

我使用Camel Simple(Talend),但它是Java代码

private void ExtractOrderFromBAC02(ProducerTemplate producerTemplate, InputStream content, String endpoint, String fileName, HashMap<String, Object> headers){
        ArrayList<String> list = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new InputStreamReader(content));
        String line;
        long numSplits = 50;                
        int sourcesize=0;
        int nof=0;
        int number = 800;
        try {               
            while((line = br.readLine()) != null){
                    sourcesize++;
                    list.add(line);
            }

         System.out.println("Lines in the file: " + sourcesize);    

        double numberFiles = (sourcesize/numSplits);  
        int numberFiles1=(int)numberFiles;  
                if(sourcesize<=50)   {  
                  nof=1;  
                }  
                else  {  
                     nof=numberFiles1+1;  
                }  
       System.out.println("No. of files to be generated :"+nof);

       for (int j=1;j<=nof;j++) {  
                 number++;
                 String  Filename = ""+ number;
                 System.out.println(Filename);

            StringBuilder builder = new StringBuilder();
            for (String value : list) {
                builder.append("/n"+value);
            }

             producerTemplate.sendBodyAndHeader(endpoint, builder.toString(), "CamelFileName",Filename);
        }

             }  

         } catch (IOException e) {
                e.printStackTrace();
         }
            finally{
                try {
                    if(br != null)br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
endpoint==>Destination(可以使用其他代码)

line.toString()==>值


然后是文件名(可以使用其他代码)

您可以将拆分器与标记器一起使用,并将其按50分组

请参见通过将N行分组在一起拆分文件一节,位置为:


您想要什么?你的问题是什么?
producerTemplate.sendBodyAndHeader (endpoint, line.toString (), "CamelFileName" Filename);