package s1214字符流字节流; /*1.注意,字符流可以读取中文,但是字节流不能显示中文,因为1字符=2字节,1个汉字用2字节表示,英文都是1字节。而且字符流读取效率 * 更高,所以读取文本一般用字符流。 * 2.单是字符流只能复制文本文件,字节流可以复制歌曲,等等任何文件 */ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; //字符流和字节流复制文本******************************************************************************** public class Main { public static void main(String[] args) throws IOException //一定要加上throws IOException语句 { copyProgram(); copyText(); } public static void copyProgram() throws IOException { //被复制的文件,用FileInputStream FileInputStream input=new FileInputStream("C:/Users/Administrator/Desktop/歌/Just One Last Dance.mp3"); //复制后的文件,用FileOutputStream FileOutputStream output=new FileOutputStream("C:/Users/Administrator/Desktop/歌/new/Just One Last Dance.mp3"); int aa; //读取一个字符 必须定义为整形 aa=input.read(); while(aa!=(-1)) //aa接受的是啊茨克码,只有当什么都没有的情况下,aa才返回-1 { output.write(aa); aa=input.read(); } output.flush(); //FileOutputStream先flush一下,将流中的残留内容全部输入或者输出 input.close(); //必须写关闭 output.close(); //必须写关闭 System.out.println("复制完毕"); } public static void copyText() throws FileNotFoundException, IOException { FileReader s=new FileReader("C:/Users/Administrator/workspace/学习历程2015/src/s0123文件夹创建/Main.java"); //字符流,文本编码方式为ANSI就能显示中文,其他编码方式不能显示中文 //字符流 // FileInputStream s=new FileInputStream("C:/Users/Administrator/Desktop/早晨从中午开始.txt");//字节流 int aa; //读取一个字符 必须定义为整形 aa=s.read(); System.out.println("文件内容为:"); while(aa!=(-1)) //aa接受的是啊茨克码,只有当什么都没有的情况下,aa才返回-1 { System.out.print((char)aa); //这里要把aa强制转型为char类型输出 aa=s.read(); } s.close(); //必须写关闭 } }