- package cn.itcast.ios;
- /*
- * 任意的文件复制,这样的话需要使用字节流,字节流可以读取任意类型的文件
- */
- import java.io.*;
- public class StreamCopyFile {
- public static void main(String[] args) {
- FileInputStream fis=null;
- FileOutputStream fos=null;
- try{
- fis=new FileInputStream("c:\\read.txt");
- fos=new FileOutputStream("d:\\read.txt");
- byte [] b=new byte[1024];
- /*int len;
- while((len=fis.read(b))!=-1){
- //一个汉字占两个字节,一个字节等于8个二进制位.一个char类型=两个字节
- //len表示字节数
- fos.write(b);
- System.out.println(b,0,len);
- }*/
- int len;
- //len表示读取到的有效字节,一个汉字等于两个字节.
- while((len=fis.read())!=-1){
- fos.write(len);
- System.out.print(len);
- }
- }catch(IOException e){
- e.printStackTrace();
- throw new RuntimeException("文件复制失败");
- }finally{
- try{
- if(fis!=null){
- fis.close();
- }
- }catch(IOException e){
- e.printStackTrace();
- throw new RuntimeException("文件写入关闭失败");
- }
- try{
- if(fos!=null){
- fos.close();
- }
- }catch(IOException e){
- e.printStackTrace();
- throw new RuntimeException("文件读取关闭失败");
- }
- }
- }
- }
复制代码 c:\\read.txt 中的文件"TYyyyuiijjkkl起床了!新的一天,小项目搞起." 复制到d:\\read.txt中内容为"TYyyyuiijjkkl起床了!新的一天,小项目搞起."但是在控制台中输出"84 89 121 121 121 117 105 105 106 106 107 107 108 198 240 180 178 193 203 33 208 194 181 196 210 187 204 236 44 208 161 207 238 196 191 184 227 198 240 46 " 为啥会这样呢?
|