用java写了一个程序,用来将文本文件打印出来.代码如下:
package MyTest;
import gnu.io.*;
import java.io.*;
public class comm_test02 {
public static void main(String[] args) {
try {
(new comm_test02()).run(args[0]);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void run(String filename) throws Exception {
BufferedReader br = new BufferedReader(
new FileReader(
new File(filename)
)
);
String line = null;
String lines = "";
while ((line = br.readLine()) != null) {
lines = lines.concat(line).concat("\n");
}
CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier("/dev/lp0");
CommPort cp = cpi.open("sez", 50);
ParallelPort pp = null;
if (cp instanceof ParallelPort) {
pp = (ParallelPort) cp;
}
OutputStream os = pp.getOutputStream();
os.write(lines.getBytes("GBK"));
os.flush();
os.close();
pp.close();
}
}
上面程序用来打印简短的文件没有问题,但要打印的文件如果很大,后部分内容会打不出来.查了一下打印机的说明发现它只能缓冲2KB的数据,因此我猜测是上面的程序将所有打印数据一下子发给打印机,超出其容量的数据则被丢弃了.
想请教一下各位,我的猜想是否正确?有什么方法可以保证即使文件很大也可用这种打印机全部打出来?
谢谢各位.