一、运用FileInputStream和InputStreamReader
1、代码部分(这里只列出了main方法中代码)
try{
//文件输入流
FileInputStream fis=new FileInputStream(new File("d:\\20160219.txt"));
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
//文件输出流
FileOutputStream fos=new FileOutputStream(new File("d:\\20160219copy.txt"));
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
StringBuffer buffer=new StringBuffer();
char buf[]=new char[64];
int len;
while((len=isr.read(buf))!=-1) {
buffer.append(buf,0,len);
System.out.println(buffer.toString());
osw.write(buf,0,len);
osw.flush();
}
isr.close();
fis.close();
osw.close();
fos.close();
}catch(Exception e) {
e.printStackTrace();
}
2、小结
在构造InputStreamReader和OutputStreamWriter对象时,要注意编码格式
二、运用FileInputStream和BufferedInputStream
1、代码部分
try{
//文件输入流
FileInputStream fis=new FileInputStream(new File("d:\\20160219.txt"));
BufferedInputStream bis=new BufferedInputStream(fis);
//文件输出流
FileOutputStream fos=new FileOutputStream(new File("d:\\20160219copy.txt"));
BufferedOutputStream bos=new BufferedOutputStream(fos);
StringBuffer buffer=new StringBuffer();
//char buf[]=new char[64];
byte[] buf=new byte[1024];
int len;
while((len=bis.read(buf))!=-1) {
String str=new String(buf,0,len);
System.out.println(str);
bos.write(buf,0,len);
bos.flush();
}
bis.close();
fis.close();
bos.close();
fos.close();
}catch(Exception e) {
e.printStackTrace();
}
2、小结
在运用输出流对象写出的时候,记得调用flush()方法。
三、运用FileInputStream和ByteArrayInputStream
1、代码部分
try{
//文件输入流
FileInputStream fis=new FileInputStream(new File("d:\\20160219.txt"));
//文件输出流
FileOutputStream fos=new FileOutputStream(new File("d:\\20160219copy.txt"));
ByteArrayOutputStream bos=new ByteArrayOutputStream();
//StringBuffer buffer=new StringBuffer();
//char buf[]=new char[64];
byte[] buf=new byte[1024];
int len;
while((len=fis.read(buf))!=-1) {
String str=new String(buf,0,len);
System.out.println(str);
bos.write(len);
}
byte[] array=bos.toByteArray();
fos.write(array);
fos.flush();
bos.close();
fis.close();
fos.close();
}catch(Exception e) {
e.printStackTrace();
}
2、小结
ByteArrayInputStream和ByteArrayOutputStream不是包装流,不像BufferedInputStream、DataInputStream等。