java⽂件传输基础:OutputStream类及实现⽂件的复制
前⾯我们已经学习过⽂件的输⼊流InputStream类的有关基础操作,今天我们来学习相对应的OutputStream类的有关内容 FileOutputStream-OutputStream的⼦类,⽤于向⽂件中写⼊byte数据。我们直接来看与⽂件写操作相关的内容,以及如何通过FileInputStream和FileOutputStream类来实现⽂件的拷贝。
public class fileoutputstream {
/*
* FileOutputStream实现了向⽂件中写⼊byte数据的⽅法
*/
public void printHex(String Filename) throws Exception {
/*
* 读取指定⽂件内容,按照16进制输出
* 每输出10个byte换⾏
*/
//把⽂件作为字节流进⾏读操作
FileInputStream in=new FileInputStream(Filename);
int b;
int i=1;
while((ad())!=-1) {
if(b<=0xf) {
System.out.print("0");
}
System.out.HexString(b)+" ");
if(i++%10==0) {//i先做运算,做完之后再+1
System.out.println();
}
}
in.close();
}
public void CopyFile(File src,File dest) throws Exception{
if(!ists()) {
throw new IllegalArgumentException("⽂件不存在");//参数异常
}
if(!src.isFile()) {
throw new IllegalArgumentException("不是⽂件!");
}
FileInputStream in=new FileInputStream(src);
FileOutputStream out=new FileOutputStream(dest);
byte[] buf=new byte[8*1024];java stream
int b;
while((ad(buf,0,buf.length))!=-1) {
out.write(buf,0, b);
out.flush();
}
in.close();
out.close();
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
/*
* 如果该⽂件不存在,则直接创建,如果⽂件存在,则删除后重新创建
* 如果在⽂件后⾯加true,则在⽂件之后追加内容(注意:如果不加true,则原⽂件的内容会被清空!)
*/
File file=new File("demo/out.dat");
if(!ists()) {
file.mkdirs();
}
FileOutputStream out=new FileOutputStream("demo/out.dat");
out.write('A');//写出了A字符的低⼋位
out.write('B');//写出了B字符的低⼋位
int a=10;//write⽅法⼀次只能写⼋位,⼀个整数需要写四次
out.write(a>>>24);
out.write(a>>>16);
out.write(a>>>16);
out.write(a>>>8);
out.write(a);
byte[] gbk="中国".getBytes("gbk");
out.write(gbk);
out.close();
fileoutputstream out1=new fileoutputstream();
out1.printHex("demo/out.dat");
out1.CopyFile(new File("D:\\"),new File("D:\\")); }
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论