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

java基础之字符流(IO流)

2015-11-24 17:30 489 查看
一)

  1)编码问题

  2)认识文本和文本文件

   java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码)

   文件是byte byte byte ...的数据序列

   文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结构

  3)字符流(Reader、Writer)-------->操作的是文本文件

  字符的处理,一次处理一个字符

  字符的底层任然是基本的字节序列

  字符流的基本实现

   InputStreamReader 完成byte流解析为char流,按照编码解析

   OutputStreamWriter提供char流到byte流,按照编码处理

        

InputStreamReader

public InputStreamReader(InputStream in)

创建一个使用默认字符集的 InputStreamReader。

public InputStreamReader(InputStream in,
CharsetDecoder dec)

创建使用给定字符集解码器的 InputStreamReader。

public int read(char[] cbuf,
int offset,
int length)
throws IOException

将字符读入数组中的某一部分。 

OutputStreamWriter

public OutputStreamWriter(OutputStream out)

创建使用默认字符编码的 OutputStreamWriter。 

public OutputStreamWriter(OutputStream out,
Charset cs)

创建使用给定字符集的 OutputStreamWriter。 

public void write(String str,
int off,
int len)
throws IOException

写入字符串的某一部分。 

FileReader

public FileReader(String fileName)
throws FileNotFoundException

在给定从中读取数据的文件名的情况下创建一个新 FileReader。 

FileWriter

public FileWriter(String fileName,
boolean append)
throws IOException

根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 

字符流过滤器BufferedReader   ----->readLine 一次读取一行BufferedWriter/PrintWriter   ------->写一行

BufferedReader

public BufferedReader(Reader in,
int sz)

创建一个使用指定大小输入缓冲区的缓冲字符输入流。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\test.txt")));<span style="font-family: Arial, Helvetica, sans-serif;">String line;</span>
while((line=br.readLine())!= null) {
System.out.println(line);
}


public String readLine()
throws IOException

读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 

BufferedWriter

public BufferedWriter(Writer out,
int sz)

创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

public void write(String str)
throws IOException

写入字符串。 

PrintWriter

public PrintWriter(OutputStream out,
boolean autoFlush)

通过现有的 OutputStream 创建新的 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。

public PrintWriter(String fileName)
throws FileNotFoundException

创建具有指定文件名称且不带自动行刷新的新 PrintWriter。此便捷构造方法创建必要的中间
OutputStreamWriter
,后者将使用此 Java 虚拟机实例的默认 charset 进行字符编码。 

public void print(String s)

打印字符串。如果参数为
null
,则打印字符串
"null"
。否则,按照平台的默认字符编码将字符串的字符转换为字节,并完全以
write(int)
[/code] 方法的方式写入这些字节。
public void println(String x)

打印 String,然后终止该行。此方法的行为就像先调用
print(String)
[/code] 然后调用
println()
[/code] 一样。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  io流 文件操作