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(); //必须写关闭 |
} |
} |