文件输入输出流--字符
<h1>字符流</h1>
<pre><code> 字符输入流Reader
字符输出流Writer</code></pre>
<h4>字浮流的常用函数</h4>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/d7edf3da31cfbf92806e533bbf5bc643?showdoc=.jpg" alt="" />
<img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/60ee5c8db55f479ef54645fff6edf8b6?showdoc=.jpg" alt="" /></p>
<pre><code> 字节输入输出流:读取和写入数据都是使用二进制的数据
字符输入输出流: 是用于传输字符,例如:聊天时传入是"字符串" 进过解成二进制发送给对方对方读取的时候不希望看到的是 二进制 就需要加码转化为字符串</code></pre>
<h3>字节字符转换流</h3>
<pre><code>InputStreamReader
OutputStreamWriter</code></pre>
<pre><code class="language-java"> private static InputStreamReader isr;
private static OutputStreamWriter osw;
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "D:\\runtime\\cache\\20.txt";
String str_cp = "D:\\runtime\\cache\\20_read.txt";
try {
// 字节流输入
FileInputStream fis = new FileInputStream(str);
// 字符流转字节流
isr = new InputStreamReader(fis);
BufferedReader Br = new BufferedReader(isr);
// 写数据
FileOutputStream fos = new FileOutputStream(str_cp);
osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
int n = 0;
char[] cbuf = new char[10];
// 单行读取
// while((n = isr.read()) != -1) {
// System.out.print((char)n);
// }
// 制定字节读取
// while((n = isr.read(cbuf)) != -1) {
// String s = new String(cbuf,0,n);
// System.out.print(s);
// }
// 写入操作
while((n = Br.read(cbuf)) != -1) {
bw.write(cbuf,0,n);
bw.flush();
}
fis.close();
osw.close();
isr.close();
bw.close();
Br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}</code></pre>
<h3>缓冲流</h3>
<pre><code>BufferedReader 文件缓冲读取
BufferedWriter 文件缓冲写入</code></pre>