Topic: [请教]如何把读出的文件在标准输出打印出来?(用nio) |
Print this page |
1.[请教]如何把读出的文件在标准输出打印出来?(用nio) | Copy to clipboard |
Posted by: monogatari Posted on: 2005-04-18 17:04 import java.nio.*; import java.nio.channels.*; import java.io.*; public class TestAll { public TestAll() { } public static void main(String[]args)throws Exception{ FileChannel from=new FileInputStream("d:\\dodo.txt").getChannel(); FileChannel to=new FileOutputStream("d:\\didi.txt").getChannel(); ByteBuffer bb=ByteBuffer.allocate(1024); int index=0; while((index=from.read(bb))!=-1){ bb.flip(); to.write(bb);//写到文件中 //这里想把所读的也输出到标准输出上,应该怎么做?? bb.clear(); } from.close(); to.close(); } } -------------------------------------------------- /* 我想到的一个方法是再用一个byte来生成String,但是这样要浪费空间,而且看上去也不太漂亮。还有其他更好的方法吗?我希望的方法是 有没有什么Channel 能将System.out作为参数的,即包装了System.out,然后只对这个Channel 操作就可以了,这样的话,不论是对文件写,还是对标准输出写,都是对某个Channel的写, */ public static void main(String[]args)throws Exception{ FileChannel from=new FileInputStream("d:\\dodo.txt").getChannel(); FileChannel to=new FileOutputStream("d:\\didi.txt").getChannel(); ByteBuffer bb=ByteBuffer.allocate(1024); //再弄个byte用来生成String byte[]forOut=new byte[1024]; int index=0; while((index=from.read(bb))!=-1){ bb.flip(); to.write(bb); bb.rewind(); //读到byte[]里面。 bb.get(forOut,0,bb.limit()); String p=new String(forOut,0,bb.limit()); System.out.print; bb.clear(); } from.close(); to.close(); } |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |