一 介绍
FileOutputStream实现了向文件中写入byte数据的方法
二 打印数据到文件
package com.imooc.io;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutDemo1 {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//如果该文件不存在,则直接创建,如果存在,删除后创建
FileOutputStream out = new FileOutputStream("demo/out.dat");
out.write('A');//写出了'A'的低八位
out.write('B');//写出了'B'的低八位
int a = 10;//write只能写八位,那么写一个int需要些4次每次8位
out.write(a >>> 24);
out.write(a >>> 16);
out.write(a >>> 8);
out.write(a);
byte[] gbk = "中国".getBytes("gbk");
out.write(gbk);
out.close();
IOUtil.printHex("demo/out.dat");
}
}
三 运行结果
41 42 00 00 00 0a d6 d0 b9 fa
四 拷贝文件
/**
* 文件拷贝,字节批量读取
* @param srcFile
* @param destFile
* @throws IOException
*/
public static void copyFile(File srcFile,File destFile)throws IOException{
if(!srcFile.exists()){
throw new IllegalArgumentException("文件:"+srcFile+"不存在");
}
if(!srcFile.isFile()){
throw new IllegalArgumentException(srcFile+"不是文件");
}
FileInputStream in = new FileInputStream(srcFile);
FileOutputStream out = new FileOutputStream(destFile);
byte[] buf = new byte[8*1024];
int b ;
while((b = in.read(buf,0,buf.length))!=-1){
out.write(buf,0,b);
out.flush();//最好加上
}
in.close();
out.close();
}
五 测试代码
package com.imooc.io;
import java.io.File;
import java.io.IOException;
public class IOUtilTest3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
IOUtil.copyFile(new File("e:\\javaio\\日记1.txt"), new File(
"e:\\javaio\\日记2.txt"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}