FileOutputStream
我使用 java 实用程序合并了三个 AFP 文件,该实用程序从文件中读取字节并使用Java 类写入输出流。合并的 AFP 文件看起来不错,但是AFPViewer
在打开 AFP 文件后在强制代码(在 TLE 浏览器中)中检查 TLE(标记逻辑元素)信息时,所有合并文件的组号保持不变到 GRP:PGP00001
请让我知道如何合并文件,以便在 AFP 合并后 GRP 编号应开始按顺序增加。结果应为 GRP:PGP00001、GRP:PGP00002 和 GRP:PGP00003
使用以下代码合并使用 Apache FOP XSL-FO 生成的每个 AFP 文件:
public static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
// Get the size of the file
long length = file.length();
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+file.getName());
}
// Close the input stream and return bytes
is.close();
return bytes;
}
主功能:
public static void main(String[] args) {
try {
FileOutputStream fos = new FileOutputStream("C:\\dev\\harry\\ETCC_data\\output.afp");
byte[] bytes1 = getBytesFromFile(new File(filePath1));
byte[] bytes2 = getBytesFromFile(new File(filePath2));
fos.write(bytes1);
fos.write(bytes2);
fos.flush();
fos.close();
}
catch(FileNotFoundException ex) { System.out.println("FileNotFoundException : " + ex); }
catch(IOException ioe) { System.out.println("IOException : " + ioe); }
}