public static void main(String[] args) {
//得到文件对象
File f1 = new File("D:\\Program Files\\eclipse中文\\Turing\\u\\src\\g.java");
//创建文件夹对象
File f2 = new File("e:\\program files1");
File f3 = new File("e:\\program files1\\java.txt");
try {
//---------------复制过程------------------
//创建输入,字节流
FileInputStream fis = new FileInputStream(f1);
//定义一个字节数组 当缓存
byte [] bytes = new byte[1024]; int n=0;//得到实际读取到的字节数
//循环读取
while((n=fis.read(bytes))!=-1){
//把字节转成string
String s = new String(bytes,0,n); //----------------粘贴过程------------------
//创建program files1 文件夹
f2.mkdir();
//创建program files1 下面的文档
f3.createNewFile();
//将复制过来的信息存放到java.txt文件中
FileOutputStream fos = new FileOutputStream(f3);
fos.write(s.getBytes());
System.out.println(s.getBytes());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
上面红色字体部分怎么起到的缓存作用啊!
还有那个while循环和字节转换String我输出s.getBytes时应该输出的不就是 读取进来的信息了么?可是不是呀?这个缓存把我弄晕了,我想把它拿掉可是以后要是碰见大一点的输入输出流我就没办法了。 |