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.printCamera;

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