字符流

                              字符输入流:Reader          字符输出流:Writer   

Writer(abstract)--->OutputStreamWriter--->FileWriter

OutputStreamWriter (将字节转换为字符流的一个类)

JAVA高级基础(32)---字符流

JAVA高级基础(32)---字符流

字符输出流需要进行flush

字符流编码

常用的字符集:UTF-8    GBK    GB2312   ISO-8859-1

当我们使用写的方法将字符写出到文件时,会使用默认的或者指定的字符集对字符进行编码,当我们打开文件的时候,其实就是文本编辑器对文件中的字符进行解码。在正确使用的时候,必须保证编码和解码 所用的字符集是一致的,否则就会出现中文乱码

字节流和字符流的区别

1、操作的单位不同:
                               字节流就是按照字节进行读写的;
                               字符流是按照字符进行读写的;
2、操作对象:
                        字节流可以读写任意文件
                        字符流只能读取纯文本文件
3、使用不同:
                      字节流是文件的最小单元,对文件的操作是原子级的
                      字符是两个字节的组合,需要在组合的时候,按照字符集进行正确的编码和解码

package org.lanqiao.writer.demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class WriterDemo {
	public static void main(String[] args) throws IOException {
		//创建字符输出流
		Writer w = new OutputStreamWriter(new FileOutputStream(new File("char.txt")),"UTF-8");
		String str = "太原师范学院";
		char[] charArr = {'太','原','师','范'};
		w.write(charArr);
		w.flush();
	}
}
package org.lanqiao.reader.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

public class ReaderDemo {
	public static void main(String[] args) throws IOException {
		Reader r = new InputStreamReader(new FileInputStream(new File("abc.mp4")));
		Writer w = new OutputStreamWriter(new FileOutputStream(new File("abcde.mp4")));
		/*每次读取一个字符
		 * int i = 0 ;
		while((i = r.read())!= -1) {
			w.write(i);
			w.flush();
		}*/
//		每次读取字符数组长度个字符
		char[] buf = new char[1024];
		int len = 0 ;
		while((len = r.read(buf))!= -1) {
			
			w.write(buf, 0, len);
			w.flush();
		}
		
	}
}

 

相关文章:

  • 2022-12-23
  • 2021-08-18
  • 2021-09-28
  • 2021-12-28
  • 2021-09-04
  • 2021-06-25
  • 2021-10-15
  • 2022-01-01
猜你喜欢
  • 2021-11-06
  • 2021-11-12
  • 2022-12-23
  • 2022-01-05
  • 2021-12-20
  • 2021-10-06
  • 2022-12-23
相关资源
相似解决方案