默认使用的就是gbk编码,这里的例子改成了utf8编码 写入—编码 private static void writeText() throws IOException { FileOutputStream fos = new FileOutputStream("utf8.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8"); osw.write("求"); osw…
内容:流的分类,文件写入(字节输出流),异常处理,获取一个文件夹下的特定文件集合 字节流的抽象基类:InputStream,OutputStream字符流的抽象基类:Reader,Writer由这四个类派生出来的子类名称都是以父类名作为子类名的后缀.如:InputStream的子类FileInputStream,Reader的子类FileReader ###################################################文件写入,字节输出流 private sta…
字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什么要有字符集 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流.那 么在这两者之间的转换规则就需要一个统一的标准,否则就会出现乱码了现象:小伙伴QQ上传过来的文件,在我们本地打开又乱码了. 于是为了实现转换标准,各种字符集标准就出现了. 2.什么是字符集 简单的…
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public static void main(String[] args) throws Exception{ //打开文件 //字符流方式打开 //字符流每次按一个字符读取 FileReader wj = new FileReader("D:/java/kj/javanew/src/Index.java"…
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节,输入输出流的概念 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. 处理对象不同:…
字符流产生的原因: 1.每次只能够读取一个字节或者一个字节数组,每次在需要转换成字符或者字符串的时候不是很方便2.不同的操作系统针对换行符的处理不方便3.有的时候会出现中文乱码(中文占两个字节,如果针对中文中某个字节做了转换或者显示,就会出现乱码)4.如果需要读取某一行数据,非常不方便 编码 * String/char[] --> byte[] * 解码 * byte[] --> String/char[] 我们可以对字符数组或者字符串进行编码,那么其实IO流底层是字符流或者字节流,所以我们一…
字符流InputStreamReader和OutputStreamWriter是Writer和Read的子类:是字节流通向字符流的桥梁,也就是可以把字节流转化为字符流. InputStreamReader 构造方法: InputStreamReader(Inputstream in) 创建一个使用默认字符集的 InputStreamReader. InputStreamReader(Inputstream in,Charset cs) 创建使用给定字符集的 InputStreamReader.…
###################################################################################IO流的规律总结:解决的问题,开发中具体使用哪个流对象的问题1,明确数据源,数据目的    就是在明确要使用的IO体系.InputStream   OutputStream     Reader       Writer    需求中做为源:意味着是读    使用:InputStream    Reader        需求中做为…
IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1Byte = 8bit 字节流可以读取任意文件:音乐/图片/..., 抛出文件不存在异常,这里统一throws扔给JVm处理,也可以try catch 字节输出流 -所有字节输出的父类 java.io.OutputStream -字节输出流的顶级抽象父类,有以下几种抽象方法 void close() 关…
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228453.html 博客主页:https://www.cnblogs.com/testero 1. 为什么会出现字符流 字符流的介绍 由于字节流操作中文不是特别的方便,所以Java就提供字符流 字符流 = 字节流 + 编码表 中文的字节存储方式 用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢? 汉字在存储的时候,无论选…
一.概述. java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来说的. 字符流:字节流读取文字字节数据后,不直接操作,而是先查指定的编码表,获取对应的文字,再对这个文字进行操作.简单来说就是字节流+码表. 在IO流中,字节流的顶层父类是Writer和Reader. 二.java.io.FileWriter类. public class FileWriterext…
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流:字符流会把读到的二进制的数据进行对应的编码解码工作. 字符流 = 字节流+编码(解码) 输入字符流Reader 输入字符流的基类 抽象类 |--FileReader 读取文件的输入字符流 FIleReader的用法: 1.找到目标文件 2.建立数据的输入通道 3.读取数据 4.关闭资源 FileWr…
IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的程序一般是让系统为它们完成大部分的工作. 在 Java 编程中,一直使用流的方式完成 I/O.所有 I/O 都被视为单个的字节的移动, 通过一个称为 Stream 的对象一次移动一个字节.流 I/O 用于与外部世界接触.它也在内部使用, 用于将对象转换为字节,然后再转换回对象.输入也叫做读取数据,输…
我们有了字节流,为什么还需要字符流? 字符的底层是 字节 + 编码表 = 字符,字符是人能看懂的信息. 字符流在使用的时候,会以字节流为基础,把字节写入缓冲区,在缓冲区内根据编码类型(UTF-8,GBK等)编码成对应的字符. 如果程序运行中需要向硬盘里读入字符或者保存字符,使用字节流的话会由于没有缓冲区进行编码翻译, 程序运行环境与外界环境的编码方式不统一导致乱码. 但是如果使用字符流复制粘贴文件,那么在缓冲区内的编码解码过程会极大的拖慢复制时间. 字符流的使用: 字符流抽象基类Reader和W…
字符流 经过前面的学习,我们基本掌握的文件的读写操作,在操作过程中字节流可以操作所有数据,可是当我们操作的文件中有中文字符,并且需要对中文字符做出处理时怎么办呢? 字节流读取字符的问题 通过以下程序读取带有中文件的文件. public class CharStreamDemo { public static void main(String[] args) throws IOException { //给文件中写中文 writeCNText(); //读取文件中的中文 readCNText();…
java.io包中:字符流   字符流的两个抽象基类:   Reader         Writer   文件的读取:Reader抽象类(java.io包中) 直接子类的构造方法: FileReader(File file)              在给定从中读取数据的 File 的情况下创建一个新 FileReader.  FileReader(FileDescriptor fd)              在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileR…
########################################IO流:    IO:用于处理设备上的数据的技术.设备:内存,硬盘,光盘    流:系统资源,Windows系统本身就可以操作的设备.各种语言只是使用系统平台的这个资源.并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源,使用完资源一定要记住:释放. File类直接有了分隔符:File.separator"c:"+File.separator+"a.txt" #######…
Reader和Writer抽象类 Reader是定义java的流式字符输入流模式的抽象类 Writer是定义流式字符输出的抽象类 该类的方法都返回void值并在错条件下抛出IOException异常 FileReader和FileWriter FileReader表示可以读取文件内容的Reader类 FileWriter  表示可以写文件的Weiter类 默认有缓冲区,缓冲区默认大小为8k   public static void main(String[] args) throws IOExc…
PrintStream:  1.提供了打印方法可以对多种数据类型值进行打印,并保持数据的表示形式  2.它不抛IOException  3.构造函数接受三种类型的值:  字符串路径  File对象  字节输出流 import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; public class PrintStreamDemo { public static void…
###############基本功能写 FileWriter fw = new FileWriter("xxx.txt"); fw.write("哈喽"); fw.close(); 读 FileReader fr = new FileReader("xxx.txt"); int ch = 0; while((ch = fr.read()) != -1){ System.out.println((char)ch); } fr.close(); #…
内容:文件读取方法,读取方法例子,read(buf)方法中buf的取值,字节流缓冲区对象—提高读取速度/// 文件读取方法:fis.read(),fis.read(buf),具体看例子 例子:文件读取——读取文件,显示出来 public class FileInputStreamDemo { public static void main(String[] args) { //为了确保文件一定在读之前一定存在.将字符串路径封装成File对象 File file = new File("F:&qu…
转换流 由于字节流操作中文不是特别方便,所以java中提供了转换流 编码表:由现实世界的字符和对应的数值组成的一张表 编码:把看得懂的变成看不懂的(String-------byte[]) 解码:把看不懂的变成看得懂的(byte[]-------String) String-----bytes[] import java.util.Arrays; import java.io.UnsupportedEncodingException; public class StringDemo{ publi…
字符流: 1.加入字符缓存流,增强读取功能(readLine) 2.更高效的读取数据 BufferedReader 从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高 //字符输入缓冲流 private static void charRead…
什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStream:BufferedOutputStream: public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流. public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流. 案例对比:…
字符流 在程序中一个字符等于两个字节,那么java提供了Reader.Writer两个专门操作字符流的类. 字符输出流:Writer Writer本身是一个字符流的输出类,此类的定义如下: public abstract class Writer extends Object implements Appendable,Closeable,Flushable 此类本身也是一个抽象类,如果要使用此类,则肯定要使用其子类,此时如果是向文件中写入内容,所以应该使用FileWriter的子类. File…
字符流缓冲区: 1.缓冲区的出现提高了对数据的读写效率: 2.对应类:BufferedWriter.BufferedReader: 3.缓冲区要结合流才可以使用: 4.在流的基础上对流的功能进行了增强.   注意:缓冲区的出现是为了提高流的操作效率而出现的,所以在创建缓冲区之前必须现有流对象.   java.io  类 BufferedReader:读入缓冲区   构造方法摘要  BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流.  Buffer…
package 文件操作; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class TestWriter { public static void main(String[] args) throws IOException { File file=new File("D:"+File.separator+"t…
字符流:读写字符的 顶级父类是Reader和Writer 操作流程 在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下: 使用File类打开一个文件 通过字节流或字符流的子类,指定输出的位置 进行读/写操作 关闭输入/输出 思维导图 相关练习代码. /** * Date : 2017/7/1 * Author : Hsj * Description :字符流知识总结 */ public class Demo2 { //可以读取字符 @Test public void fun…
IO包中的其他类操作基本数据类型:DataInputStream与DataOutputStream操作字节数组:ByteArrayInputStream与ByteArrayOutputStream操作字符数组:CharArrayReader与CharArrayWriter操作字符串:StringReader与StringWriter ####DataInputStream与DataOutputStream public static void main(String[] args) throws…
内容:PrintStream:字节流    PrintWriter:字符流 PrintStream public static void main(String[] args) throws IOException { //创建对象 PrintStream ps = new PrintStream("myfile\\print.txt"); //写入整数 ps.write(355); //文件里面是c,只是写入整数的最低字节,也就是最后8位二进制 ps.print(355); //文件…