目录
处理流
处理流和节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接
常用的处理流
- 缓冲流:BufferedInputStrean 、BufferedOutputStream、 BufferedReader、 BufferedWriter 增加缓冲功能,避免频繁读写硬盘
- 转换流:InputStreamReader 、OutputStreamReader实现字节流和字符流之间的转换
- 数据流: DataInputStream 、DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来
InputStreamReader(InputStream); //通过构造函数初始化,使用的是本系统默认的编码表GBK。
InputStreamWriter(InputStream,String charSet); //通过该构造函数初始化,可以指定编码表。
OutputStreamWriter(OutputStream); //通过该构造函数初始化,使用的是本系统默认的编码表GBK。
OutputStreamwriter(OutputStream,String charSet); //通过该构造函数初始化,可以指定编码表。
转换流
转换流:属于字符流
- InputStreamReader:将一个字节的输入流转换为字符的输入流
- OutputStreamWriter:将一个字符的输出流转换为字节的输出流
作用:提供字节流与字符流之间的转换
InputStreamReader 、OutputStreamWriter 要InputStream或OutputStream作为参数,实现从字节流到字符流的转换
//获取键盘录入对象
class TransStreamDemo
{
public static void main(String[] args)throws IOException
{
//获取键盘录入对象
InputStream in =System.in;
//将字节流对象转成字符流对象,使用转换流
InputStreamReader isr = new InputStreamReader (in);
//为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
BufferedReader bufr = new BufferedReader(isr);
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line));
break;
System.out.println(line.toUpperCase());
}
bufr.close();
}
}
//获取键盘写入对象
class TransStreamDemo
{
public static void main(String[] args)throws IOException
{
//获取键盘录入对象
InputStream in =System.in;
//将字节流对象转成字符流对象,使用转换流
InputStreamReader isr = new InputStreamReader (in);
//为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
BufferedReader bufr = new BufferedReader(isr);
//以上可以何合为一行代码,这时键盘最常见的写法
//BufferedReader bufr = new BufferedReader(new InputStreamReader (System.in));
//获取键盘写入对象
OutputStream out = System.out;
OutputStreamWriter osw = new OutputStreamWriter(out);
BufferWriter bufw = new BufferdWriter(osw);
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line));
break;
bufw.write(line.toUpperCase());
//换行
bufw.newLine();
//刷新到控制台
bufw.flush();
}
bufr.close();
}
}
常用方法
void close()
void flush()
void write(char[] cbuf,int off,int len) //写入字符数组的某一部分
write(int c) //写入单个字符
write(String str,int off,int len) //写入字符串的某一部分