package io2;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class IOUtils {
public static void main(String[] args) throws IOException {
FileOutputStream fos =
new FileOutputStream("src/test2.txt");
//用io流的构造方法来创建文件,可以立刻在硬盘直接创建文件
//如果以前有过同名的文件,直接覆盖,如果要追加内容
// new FileOutputStream("src/test2.txt",true);
fos.write('A');
fos.write('B');
int a = -2;//0xfffffffe
// 11111111 11111111 11111111 11111110
fos.write(a>>>24);//ff
fos.write(a>>16);//ff
fos.write(a>>8);//ff
fos.write(a);//fe
// 中国: 中: d6d0
byte[] str = "中国".getBytes("GBK");
fos.write(str);
fos.flush();
fos.close();
printInput("src/test2.txt");
copy2("c:/JDK_API_1_6_zh_CN.CHM","d:/JDK_API_1_6_zh_CN.CHM");
} //输入流
public static void printInput(String name) throws IOException{
// 创建输入流
FileInputStream fis = new FileInputStream(name);
int b ;
int i = 1;
//把一个文件全部读取出来,结尾-1
while((b=fis.read())!=-1){//在io当中最固定的格式
System.out.print(Integer.toHexString(b)+" ");
//每隔8个,换行
if(i++%8==0){
System.out.println();
}
}
fis.close();
}
//复制(第1版)性能太差
public static void copy1(String src,String target) throws IOException{
// 输入流(读取文件内容)
FileInputStream fis = new FileInputStream(src);
// 输出流(写文件内容)
FileOutputStream fos = new FileOutputStream(target);
int b ;
//把从输入流中读取的内容,写入到输出流中
while((b = fis.read())!=-1){
fos.write(b);
}
fis.close();
fos.close();
}
// 复制(第2版),使用缓冲流,来提高性能
public static void copy2(String src,String target) throws IOException{
// 输入流
InputStream in = new
BufferedInputStream(new FileInputStream(src));
// 依赖:BufferedInputStream依赖于FileInputStream
OutputStream out = new
BufferedOutputStream(new FileOutputStream(target));
int b ;
while((b = in.read())!=-1){
out.write(b);
}
in.close();
out.close();
}
}
阅读(2035) | 评论(0) | 转发(0) |