zoukankan      html  css  js  c++  java
  • Java—字符流

    一、字符流

    字符流概述:

    在操作过程中字节流可以操作所有数据,操作的文件中有中文字符,并且需要对

    中文字符做出处理

    二、字符编码表

    文字——>(数字):编码。"abc".getBytes() byte[]

    数字——>(文字):解码。byte[] b = {97, 98, 99} new String(b)

    三、字符输入流Reader

    FileReader类

    此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的;用来操作文件的字符输入流(简便的流)

    使用字节流读写中文字符
    public class CharStreamDemo {
    	
    	public static void main(String[] args) throws IOException {
    		// 给文件中写中文
    		writeCNText();
    		
    		// 读取文件中的中文,读取的都是数字,跟字符编码表有关
    		readCNText();
    	}
    	
    	public static void readCNText() throws IOException {
    		InputStream is = new FileInputStream("e:/file.txt");
    		int ch = 0;
    		while((ch = is.read()) != -1){
    			System.out.println(ch);
    		}
    		
    		is.close();
    	}
    
    	public static void writeCNText() throws IOException {
    		OutputStream os = new FileOutputStream("e:/file.txt");
    		os.write("Java欢迎您~~~".getBytes());
    		os.close();
    	}
    	
    }
    
    使用字符输出流读取字符

    用来操作文件的字符输出流(简便的流)

    public class CharStreamDemo {
    	
    	public static void main(String[] args) throws IOException {
    		// 给文件中写中文
    		writeCNText();
    		
    		// 读取文件中的中文
    		readCNText();
    		
    	}
    	
    	public static void readCNText() throws IOException {
    		Reader reader = new FileReader("e:/file.txt");
    		int ch = 0;
    		while((ch = reader.read()) != -1){
    			// 输入的字符对应的编码
    			System.out.print(ch + " = ");
    			
    			// 输入字符本身
    			System.out.println((char) ch);
    		}
    		
    		reader.close();
    	}
    
    	public static void writeCNText() throws IOException {
    		OutputStream os = new FileOutputStream("e:/file.txt");
    		os.write("Java欢迎您~~~".getBytes());
    		os.close();
    	}
    	
    }
    

    四、字符输入流Writer

    FileWriter类

    写入字符到文件中,先进行流的刷新,再进行流的关闭

    flush() & close() 的区别

    flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用

    close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后再关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。

    public class FileWriterDemo {
    	public static void main(String[] args) throws IOException {
    		Writer writer = new FileWriter("e:/text.txt");
    		writer.write("你好,谢谢,再见");
    		/*
    		 * flush() & close()
    		 * 区别:
    		 * flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,
    		 * 			流还可以继续使用
    		 * close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,
    		 * 		          否则丢失数据,然后再关闭流。流不可以使用。
    		 * 			如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,
    		 * 			由close完成刷新并关闭。
    		 */
    		writer.flush();
    		writer.close();
    	}
    }
    
  • 相关阅读:
    风险分解结构
    WBS 工作分解结构
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    React4.0以上如何获取当前的路由地址呢
    浅谈react传入路由参数---withRouter组件
    react项目实现维持登录与自动登录
    async和await应用步骤分析+优化异常处理
    跨域场景&&跨域处理方案
    vscode react中标签自动补全 vscode jsx语法自动补全html标签
  • 原文地址:https://www.cnblogs.com/nadou/p/13973835.html
Copyright © 2011-2022 走看看