基本上上两篇把IO主要的操作都涉及到了,这一篇作为收尾写一点零碎的东西吧。主要三个方面,一个是转换流,一个是标准输入输出流,再有就是编码方式。
转换流:
倘若文本文件用字节流来接受,可以再转换成字符流,通过字符流操作完再转换成字节流输出出去,这样进行编码和解码的过程称为转换。通过转换流实现。大致过程:
- 创建File
- 创建字节流
- 创建转换流
- 创建缓冲流
- 关闭缓冲流
public void Trantest()
{
File f=null;
FileInputStream fis=null;
InputStreamReader isr=null;
BufferedReader br=null;
try {
f=new File("kitty.txt");
fis=new FileInputStream(f);
isr=new InputStreamReader(fis,"GBK");
br=new BufferedReader(isr);
String s;
while((s=br.readLine())!=null)
{
System.out.println(s);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(br!=null)
{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
这里转换流中用到编码方式,这里用一个图片主要显示当前常用的编码方式:
其他不多提。
标准输入输出流:
不知道该怎么说,就用一个小代码段来说明一下吧。该代码实现控制台的输入转换成大写。输入e终止程序。
public void testStrand()
{
InputStream in=System.in;
InputStreamReader isr=null;
BufferedReader br=null;
try {
isr=new InputStreamReader(in);
br=new BufferedReader(isr);
String s;
while(true)
{
System.out.println("please input something end with enter");
s=br.readLine();
if(s.equalsIgnoreCase("e"))
{
break;
}
String ss=s.toUpperCase();
System.out.println(ss);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(br!=null)
{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
嗯,这里IO的部分基本上就是这样了。