package com.atguigu.java;
import org.junit.Test;
import java.io.*;
public class InputStreamReaderTest {
@Test
public void test2(){
//造文件、造流
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("srcTest.txt");
fos = new FileOutputStream("destTest-gbk.txt");
InputStreamReader isr = new InputStreamReader(fis,"utf-8");
OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");
//读写的过程
char[] cbuf = new char[20];
int len;
while ((len = isr.read(cbuf)) != -1){
// String s =new String(cbuf,0,len);
// System.out.print(s); //这样测试了一下,控制台上是可以打印出来的
osw.write(cbuf,0,len); //就这,莫名其妙不能写入到,好气
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭资源
try {
if(fis != null)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
jdk-8.0 代码如上,想将srcTest.txt文件里的内容输出到destTest-gbk.txt里,并将原来的utf-8编码格式转换为gbk。 在读取文件后测试了一下能将原文件的内容打印到控制台,但是生成的destTest-gbk文件里空空如也...连乱码也没有... 不晓得我是哪一步出错了。
char[] cbuf = new char[20];改成byte[]
在循环外面加osw.flush();试试
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y