Hello evereybody, I use Java Camel to my project (Talend). I need your help for a method to solve this problem. I have this file:
D0000000000000000000 EEASTDE ELASPDF ELASQML EEASTDE ELASPDF ELASQHG F00000006 How I can cut in java this way (in 2 file) ? EEASTDE ELASPDF ELASQML And: EEASTDE ELASPDF ELASQHG I have to cut the file according to the head EEASTDE. It's an example, I could have several times the header EEASTDE (3, 4, 5...). I thought of the HashMap, the arraylist but I don't know how to make the code because I'm not indicate the line EEASTDE as a unique key. Here is my test code but it doesn't work: public class bean_test implements Processor{ private static final String MDS_ENDPOINT_NAME = "MDSEndpoint"; private static final String EEASTD_HEADER = "EEASTDE"; private static final int EEASTD_HEADER_START_POSITION = 0; private static final int EEASTD_HEADER_END_POSITION = 7; private static final String START_OF_FILE_TAG = "D"; private static final String END_OF_FILE_TAG = "F"; @Override public void process(Exchange exchange) throws Exception { ProducerTemplate producerTemplate = exchange.getContext().createProducerTemplate(); String MDSEndpoint = exchange.getIn().getHeader(MDS_ENDPOINT_NAME, String.class); InputStream is = new ByteArrayInputStream(exchange.getIn().getBody(String.class).getBytes()); extractFromMDS(producerTemplate, is, MDSEndpoint, new HashMap<String, Object>(exchange.getIn().getHeaders())); } private void extractFromMDS(ProducerTemplate producerTemplate, InputStream content, String MDSEndpoint, Map<String, Object> headers){ BufferedReader br = new BufferedReader(new InputStreamReader(content)); String line; try { while((line = br.readLine()) != null){ if(!line.startsWith(START_OF_FILE_TAG) && !line.startsWith(END_OF_FILE_TAG)){ StringBuilder stringBuilder = null; if(line.substring(EEASTD_HEADER_START_POSITION, EEASTD_HEADER_END_POSITION).equals(EEASTD_HEADER)){ stringBuilder = new StringBuilder(); stringBuilder.append("\n"+(line)); } producerTemplate.sendBodyAndHeaders(MDSEndpoint, stringBuilder.toString(), headers); } } } catch (IOException e) { e.printStackTrace(); } finally{ try { if(br != null)br.close(); } catch (IOException e) { e.printStackTrace(); } } } } Have you an idea ? Thank you in advance. Natacha. -- View this message in context: http://camel.465427.n5.nabble.com/Cut-a-file-into-multiple-files-tp5787210.html Sent from the Camel - Users mailing list archive at Nabble.com.