您的位置:首页 > 编程语言 > Java开发

Java_IOl流_缓冲流_转换流

2020-04-01 18:57 337 查看

1.缓冲流

使用缓冲流实现a.jpg文件复制为b.jpg文件的操作

public class Exer01 {
public static void main(String[] args) {
//文件路径
String src = "/exer01/a.jpg" ;
String dest = "/exer01/b.jpg" ;
//调用封装好的方法
bufferedCopyFile(src,dest);
}
/**
* 使用缓冲流从原件中复制文件到目标文件中
* @param src 源文件的路径
* @param dest 目标文件的路径
*/
public static void bufferedCopyFile(String src , String dest){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try{
//1.创建IO流
bis = new BufferedInputStream(new FileInputStream(src));
bos = new BufferedOutputStream(new FileOutputStream(dest));
//2.数据的读写
byte[] data = new byte[1024];
int length ;
while ((length = bis.read(data)) != -1){
bos.write(data,0,length);
}
//反馈信息
System.out.println("文件复制成功");

}catch(Exception e){
e.printStackTrace();
}finally{
//3.关闭文件
try {
if (bos != null)
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (bis != null)
bis.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}
}

2. 转换流

将gbk格式的文件转换为utf-8格式存储

public class GBKToUTF_8 {
@Test
public void test() {
InputStreamReader isr = null;
OutputStreamWriter osw = null;
try {
//造流
isr = new InputStreamReader(new FileInputStream(new File("test.txt")),"GBK");
osw = new OutputStreamWriter(new FileOutputStream(new File("test_copy.txt")), "UTF-8");
//读入、读出
char[] cbuf = new char[8192];
int len;
while ((len = isr.read(cbuf)) != -1) {
osw.write(cbuf, 0, len);
}
//反馈信息
System.out.println("格式转换成功<GBK → UTF-8>");
} catch (IOException e) {
e.printStackTrace();
} finally {
//关流
try {
if (osw != null)
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (isr != null)
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
Oscar_yang2020 发布了16 篇原创文章 · 获赞 2 · 访问量 243 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: