1、字节输入流到字符输入流的转换
@Test
public void test() {
FileInputStream fis = null;
try {
fis = new FileInputStream("hello.txt");
//InputStreamReader isr = new InputStreamReader(fis); //使用(IDEA)系统默认的字符集
//参数2指明了字符集,集体使用那个字符集,取决于文件hello.txt保存时使用的字符集
InputStreamReader isr = new InputStreamReader(fis,"GBK");
char[] cbuf = new char[10];
int len;
while((len=isr.read(cbuf))!=-1){
String str = new String(cbuf,0,len);
System.out.print(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2、转换流实现文件的读写
@Test
public void test02(){
InputStreamReader isr = null;
OutputStreamWriter osw = null;
try {
//1、造文件,造流
File file1 = new File("Hello.txt");
File file2 = new File("hello_out.txt");
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
isr = new InputStreamReader(fis);
osw = new OutputStreamWriter(fos);
//2、读写过程
char[] cbuf = new char[20];
int len;
while((len =isr.read(cbuf))!=-1){
osw.write(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(isr!=null){
//3、关闭资源
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(osw!=null){
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}