Java 字符码、字符流、字节流

字符编码表

Ascii: 0-xxxxxxx正数

iso-8859-1: 拉丁码表1-xxxxxxx  负数。

GB2312: 简体中文码表

GBK: 最常用的中文码表 String字符串默认

GB18030: 最新的中文码表

unicode: 国际标准码表 char字符默认 每个字符两字节

UTF-8: 基于unicode 每个字符一个或两个字节

能识别中文的码表:GBK、UTF-8

常见的编码 GBK  UTF-8  ISO-8859-1

文字--->(数字) :编码 “abc”.getBytes()  byte[]

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

ANSI:系统编码

      字节流 In           字符流  要刷新Reader

抽象类   OutputStream           Writer

        |            /                  \

实现类   FileOutputStream   +   OutputStreamWriter = FileWriter

        |       \     编码         |

缓冲流   BufferedOutputStream  PrintStream        BufferedWriter

字节流(图片)

FileOutputStream  FileInputStream

public static void method01() throws IOException{

//FileOutputStream fos=new FileOutputStream(file);//传入File对象

//FileOutputStream fos=new FileOutputStream("F:\\a.txt");//创建/覆盖

FileOutputStream fos=new FileOutputStream("F:\\java\\a.txt",true);/追加

fos.write(97); //写入字节   正数:Ascll码 a 负数:半个汉字 或?

byte[] bytes={97,98,99,100};

fos.write(bytes); // 写入一个  字节 数组

fos.write(bytes,1,1); // 从1开始  长度为1

String str="你好,中国2\r\n"; // 换行:\r\n

fos.write(str.getBytes()); // 字符串 转 字节数组  写入

fos.close();

}

字符流(文本,只能是gbk格式)

public static void main(String[] args) throws IOException {

//FileWriter fw = new FileWriter("d:\\a.txt");//创建输出流对象

//FileWriter fw = new FileWriter("b.txt");//项目路径下 创建文件

FileWriter fw = new FileWriter("c.txt",true); //追加写入=true

fw.write("helloworld");//写入字符串

fw.write("\r\n");//windows:\r\n  linux:\n  mac:\r

//fw.flush();//字符需要 刷新缓冲区

fw.write("abcde",0,5);//写入字符串 起始索引 长度

fw.write(‘a‘);//写入字符char      a

fw.write(97);//写入字符 对应的Ascll码    a

char[] chs = {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘};

fw.write(chs); //abcde

fw.write(chs,2,3);//写入字符数组 起始索引 长度

fw.close();//刷新缓冲区+释放资源

}

原文地址:https://www.cnblogs.com/javscr/p/10247936.html

时间: 2024-11-25 18:23:06

Java 字符码、字符流、字节流的相关文章

java基础(IO流---字节流、字符流、字节数组流)

字节流: FileInputStream:通过字节的方式读取文件,适合读取所有类型的文件(图像.视频等),全字符请考虑FileReader FileOutputStream:通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像.视频等),全字符请考虑FileWriter 字符流: FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 字节数组流: ByteArrayInputStream:字节数组输入

java学习之字符流与字节流的转换

1 package com.io; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.InputStreamReader; 9 /** 10 * 字节流转为字符流读入 11 * @author ga

Java——文件操作字符流和字节流的区别

转:http://blog.csdn.net/joephoenix/articles/2283165.aspx java的IO流分两种流 字节流 InputStream OutputStream 字符流 Reader Writer 他们都是抽象类 具体实现 字节流 FileInputStream FileOutputStream 字符流 FileReader FileWriter 字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节

java的IO学习,字节流与字符流的编码讲解

字节流与字符流 字节流可以处理所有类型的数据(图片.视频等),在java中对应的类都为“stream”结尾 1字节=8位二进制=具体存储空间 字符流仅能处理纯文本的数据,在java中对应的类都是以“reader”或者“writer”结尾 如汉字,符号等 import org.junit.Test; public class IOTest { /** * BufferedInputStream BufferedOutputStream * 利用字节缓冲流实现文件的复制 * @throws IOEx

Java基础:IO流之字节流和字符流

1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL. 流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能往输入流写,而不能读它. 实际上,流的源端和目的端可简单地看成是字节的生产者和消费

整理 JAVA中的IO流 (字符流和字节流两个大类)

java中的io流分为两类,字符和字节: OutputStream和InputStream字节流的父类,抽象.OutputStream有两个提供了实现的接口closable和flushable. Writer和Reader字符流的父类,抽象.实际上在流的操作中,底层与文件进行读写的都是字节流,因为即使是字符流的对象,其最终实现读写的也是用的字节流. 操作文件的字节子类FileOutputStream和FileInputStream.记住,这里面写出和读入的都是字节. class useByteS

Java之IO初识(字节流和字符流)

IO概述 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备上的呢?键盘.内存.硬盘.外接设备等等.我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出output ,即流向内存是输入流,流出内存的输出流.Java中I/O操作主要是指使用 java.io 包下的内容,进行输入.输出操作.输入也叫做读取数据,输

java 21 - 1 IO流中的字符流概述

字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: 计算机只能识别二进制数据,早期由来是电信号. 为了方便应用计算机,让它可以识别各个国家的文字. 就将各个国家的文字用数字来表示,并一一对应,形成一张表. ASCII:美国标准信息交换码. 用一个字节的7位可以表示. ISO8859-1:拉丁码表.欧洲码表 用一个字节的8位表示. GB2312:中国的

java之IO字符流

1.转换流的引入 在项目中新建了一个a.txt的文件,内容是 hello中国.我现在用字节输入流来读取并输出到控制台.当然复制文件是没有问题的啦.编码是utf-8. package cn; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class FileInputStreamDemo1 { public static void main(String[

Java IO5:字符流

字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为上一篇文章写了,一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. Reader Reader