static void extractNMessages(String filein, int n, String fileout) throws IOException { try (RandomAccessFile raf = new RandomAccessFile(filein, "r"); FileOutputStream fos = new FileOutputStream(fileout); WritableByteChannel wbc = fos.getChannel()) { MessageScanner scan = new MessageScanner(raf); int count = 0; while (scan.hasNext() && (count < n)) { Message m = scan.next(); scan.writeCurrentMessage(wbc); count++; } } }
static void writeUniqueDDS(String filename, WritableByteChannel wbc) throws IOException { System.out.printf("open %s ",filename); try (RandomAccessFile raf = new RandomAccessFile(filename, "r")) { MessageScanner scan = new MessageScanner(raf); int count = 0; while (scan.hasNext()) { Message m = scan.next(); if (m == null) { bad_msgs++; System.out.printf("Bad Message%n"); continue; } if (!messSet.contains(m)) { scan.writeCurrentMessage(wbc); messSet.add(m); } count++; } System.out.printf(" read = %d%n ", count); } }
static void extractAllWithHeader(String filein, Pattern p, WritableByteChannel wbc) throws IOException { System.out.println("extract "+filein); try (RandomAccessFile raf = new RandomAccessFile(filein, "r")) { MessageScanner scan = new MessageScanner(raf); while (scan.hasNext()) { Message m = scan.next(); Matcher matcher = p.matcher(m.getHeader()); if (matcher.matches()) { scan.writeCurrentMessage(wbc); System.out.println(" found match " + m.getHeader()); } } } }
static void extractMessageByListhash(String filein, int want, String fileout) throws IOException { try (RandomAccessFile raf = new RandomAccessFile(filein, "r"); FileOutputStream fos = new FileOutputStream(fileout); WritableByteChannel wbc = fos.getChannel()) { int count = 0; MessageScanner scan = new MessageScanner(raf); while (scan.hasNext()) { Message m = scan.next(); int listHash = m.dds.getDataDescriptors().hashCode(); if (listHash == want) { scan.writeCurrentMessage(wbc); wbc.close(); raf.close(); System.out.printf("output %d from %s %n", count, filein); return; } count++; } } }
static void extractNthMessage(String filein, int msgno, String fileout) throws IOException { try (RandomAccessFile raf = new RandomAccessFile(filein, "r"); FileOutputStream fos = new FileOutputStream(fileout); WritableByteChannel wbc = fos.getChannel()) { MessageScanner scan = new MessageScanner(raf); int count = 0; while (scan.hasNext()) { Message m = scan.next(); if (msgno == count) { scan.writeCurrentMessage(wbc); wbc.close(); raf.close(); return; } count++; } } }
static void extractFirstMessageWithHeader(String filein, String header, String fileout) throws IOException { try (RandomAccessFile raf = new RandomAccessFile(filein, "r"); FileOutputStream fos = new FileOutputStream(fileout); WritableByteChannel wbc = fos.getChannel()) { MessageScanner scan = new MessageScanner(raf); int count = 0; while (scan.hasNext()) { Message m = scan.next(); if (m.getHeader().contains(header)) { scan.writeCurrentMessage(wbc); wbc.close(); raf.close(); return; } count++; } } }
if (pqact.match(ttaaii, m)) { hasMatch = true; writeBytes += scan.writeCurrentMessage(pqact.getWBC()); writemsg++; break; writeBytes += scan.writeCurrentMessage(wbc);
out.format(" missing operation in file %s %n", filename); if (wbc != null) scan.writeCurrentMessage(wbc); continue;