主类的命名必须是Main 形如: public class Main{ } 2.输入输出: 2.1输入: (1)使用Scanner类进行输入 首先需要定义一个可以在控制台从键盘接收数据的...---- 2.2 输出 java中往控制台输出的几种常用函数 System.out.printf(); //和C/C++中的printf一样。 可使用格式控制符进行格式化输出。...和 BufferedWriter 都在 java.io....,存在s2中 需要注意的是 在windows中按一下回车键 一共有两个字符 “\n\r” 而read()只能读取一个字符所以如要要用read来达到吸收回车的目的,需要用两个read(); 如果用readLine...)); 主要使用 BufferedWriter类中的 write() 类进行输出。
bw.newLine(); bw.flush(); } //释放资源 bw.close(); } } 8.将文本中的字符排序后加入到另一个文本中.../** 1.已知s.txt文件中有一个字符串“ndjdnsnakdapiiisnjvmsdsiajdsailn”; 2.读取文件的内容,存储到字符串中 3.把字符串转化为字符数组 4.对字符数组进行排序...5.把字符数组转化为字符串 6.通过字符输出流把字符串输出到ss.txt */ public class StringArray { public static void...().toCharArray(); //将字符数组进行排序 Arrays.sort(arrays); //将字符数组转化为字符串...bw.flush(); bw.close(); } } 9.使用PrintWriter进行输出操作 public class PrintWriteDemo {
java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。...如果缓冲区数据不足,才会再从文件中读取, 使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。 如果缓冲区中的数据满了,才会一次对目的地进行写出。...Reader 类是 Java 的 I/O 中读字符的父类,而 InputStream 类是读字节的父类, InputStreamReader 类就是关联字节到字符的桥梁,它负责在 I/O 过程中处理读取字节到字符的转换...如果缓冲区数据不足,才会再从文件中读取, 使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。 如果缓冲区中的数据满了,才会一次对目的地进行写出。...,它负责在 I/O 过程中处理读取字节到字符的转换, 而具体字节到字符的解码实现它由 StreamDecoder 去实现, 在 StreamDecoder 解码过程中必须由用户指定 Charset
_C_____ , 反之则会使用____A_____;如果你想存储一组无序但唯一的对象,你会使用___B______ ; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用___D_...**泛型方法:泛型放在返回值前面,修饰符的后面 A:为了避免泛型类的局限性,让不同方法可以操作不同的类型,而且类型还不确定, 则可以将泛型定义在方法上 B:特殊之处:静态方法不可以反问类上定义的泛型...好处:可以使用集合的思想和方法操作数组中的元素,数组是一个对象,但是数组中的功能很少 (2)集合变数组: 方法:Collction中的toArray方法 好处:可以限定对集合元素的操作,防止对集合的元素进行增删...(重点) A:Collections 排序 二分查找 发转 B:Arrays 把数组变成字符串输出 排序 二分查找 21、System: (1)描述系统信息的类 (2)该类没有构造方法...(2)java中对数据的操作都是通过流的方式。 (3)java用于操作流的类都在io包中。 (4)按照流操作的数据的类型不同:分为字节流和字符流。字符流是为了方便中文的操作而来的。
文件 文件,对我们并不陌生,文件是保存数据的地方。文件在程序中是以流的形式来操作的。...Java程序中,对于数据的输入/输出操作以”流(stream)”的方式进行。...输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中 流的分类 按操作数据单位不同分为:字节流(8 bit)(二进制文件例如声音视频word等可以无损操作),字符流(按字符)(文本文件)...按数据流的流向不同分为:输入流,输出流。 按流的角色的不同分为:节点流,处理流 / 包装流。 Java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象基类派生的。...上面的要求,就是能够将基本数据类型或者对象进行序列化和反序列化操作 序列化和反序列化 序列化就是在保存数据时,保存数据的值和数据类型 反序列化就是在恢复数据时,恢复数据的值和数据类型 需要让某个对象支持序列化机制
一般来说java.util.Set,java.util.Map输出的内容的顺序并不是按key的顺序排列的,但是java.util.TreeMap,java.util.TreeSet的实现却可以让Map/...Set中元素内容以key的顺序排序,所以利用这个特性,可以将Map/Set转为TreeMap,TreeSet然后实现排序输出。...以下是实现的代码片段: /** * 对{@link Map}中元素以key排序后,每行以{key}={value}形式输出到{@link Writer} * map为空或...+ "=" + e.getValue()); bw.newLine(); } bw.flush(); } /** * 对...{@link Collection}中元素排序后(去除重复),元素分行输出到{@link Writer} * collection为空或null时则不向writer写入任何内容
IO流简介 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径 流分类 按操作数据单位不同分为...字节流(8 bit) –适合操作二进制文件 字符流(按字符) –适合操作文本文件 按数据流的流向不同分为 输入流 输出流 按流的角色的不同分为 节点流 处理流/包装流 体系图 文件操作...处理流对节点流进行包装,使用了修饰器设计模式,不会直接与数据源相连,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。...BufferedInputStream时,会创建一个内部缓冲区数组 BufferedOutputStream 是字节流,实现缓冲的输出流,可以将多个字节写入底层输出流中,而不必对每次字节写入调用底层系统...Dog(“小黄”,3) 这个 dog 对象保存到文件中,并且能够从文件恢复 3.上面的要求,就是能够将基本数据类型或者对象进行序列化和反序列化操作 序列化和反序列化 序列化就是在保存数据时,保存数据的值和数据类型
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板、内存、键盘等处理设备上得数据操作...根据流向不同,可以分为:输入流和输出流。 其中主要结构可以用下图来表示: ? ...字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。...2.File对象 3.OutputStream PrintStream是一个字符打印流,它的构造函数可以接受四种类型的值:1.字符串路径。..., BufferedReader, BufferedWriter 4、按数据格式分: 1、二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带
Java程序在执行的时候,是在内存进行的,外部的数据需要读写到内存才能处理;而在内存中的数据是随着程序结束就消失的,有时候我们也需要把数据输出到外部文件。...(RandomAccessFile除外) 只读或只写:每个流只能是输入流或输出流的一种,不能同时具备两个功能,输入流只能进行读操作,对输出流只能进行写操作。...在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。 1.2、IO流的分类 1.1.1、按方向分 按数据流的方向分为 输入流、输出流,是相对内存来说的。...Java中字符是采用Unicode标准,Unicode 编码中,一个英文为一个字节,一个中文为两个字节。但是编码不同,中文字符占的字节数不一样,而在UTF-8编码中,一个中文字符是3个字节。...在计算机层面,Java对磁盘进行操作,IO是有缓存的,并不是真正意义上的一边读一边写,底层的落盘(数据真正写到磁盘)另有方法。
: 1 10 3 4 5 1 10 3 4 5 1 2 3 4 5 数组排序 import java.util.Arrays; import java.util.Collections; import...System.out.print(val + " "); } System.out.println(); } // 快速打印二维数组的值...对第i个参数多次不同的格式化输出 import java.util.Date; public class Main { public static void main(String[]args) {...BufferedReader读入数据 BufferedWriter输出数据 IO数据大的时候替换Scanner输入和System.out输出 import java.io.*; public class...bw.flush(); // 记得刷新缓存 } } StringBuilder和StringBuffer 可变字符串,String是不可变字符串 public class Main { public
在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。...Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。...① 按流向分类 输出流:OutputStream 和 Writer 为基类。 输入流:InputStream 和 Reader 为基类。...方法 2:BufferedWriter BufferedWriter 也属于字符流体系的一员,与 FileWriter 不同的是 BufferedWriter 自带缓冲区,因此它写入文件的性能更高(下文会对二者进行测试...,所以在使用字节流时,需要先将字符串转换为字节流,因此在执行效率上不占优势。
BufferedReader/BufferedWriter:装饰类,对输入输出流提供缓冲,以及按行读写功能。 PrintWriter:装饰类,可将基本类型和对象转换为其字符串形式输出的类。...编码 在文本文件中,编码非常重要,同一个字符,不同编码方式对应的二进制形式可能是不一样的,我们看个例子,对同样的文本: hello, 123, 老马 UTF-8编码,十六进制为: ?...UTF-16BE也是Java内存中对字符的编码方式。...,它需要两个char表示,对于这种字符,Java中的字符流是按char而不是一个完整字符处理的。 理解了文本文件、编码和字符流的概念,我们再来看Java中的相关类,从基类开始。...在Java中,可以使用System类的setIn, setOut, setErr进行重定向,比如: System.setIn(new ByteArrayInputStream("hello".getBytes
在 Java 中,有不同类型的 Reader 输入流对应于不同的数据源: FileReader 用于从文件输入; CharArrayReader 用于从程序中的字符数组输入; StringReader...用于从程序中的字符串输入; PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。...、缓冲读者和作者 因为在各种格式之间进行转换和其它I/O操作很类似,所以在处理大块数据时效率最高。...记住对BufferedWriter使用flush()方法。...// 文件实现追加: // 其中的FileWriter()中的第二个参数的含义是:是否在文件中追加内容 PrintWriter out = new PrintWriter(new FileWriter(
字符缓冲流操作文件中数据排序案例 总结 一、字符的读取与写入 1.为什么会出现字符流 字符流的介绍 由于字节流操作中文不是特别的方便,所以Java就提供字符流 字符流 = 字节流 + 编码表 中文的字节存储方式...:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。...{ public static void main(String[] args) throws IOException { //创建字符缓冲输出流 BufferedWriter...案例需求 使用字符缓冲流读取文件中的数据,排序后再次写到本地文件 实现步骤 将文件中的数据读取到程序中 对读取到的数据进行处理 将处理后的数据添加到集合中 对集合中的数据进行排序 将排序后的集合中的数据写入到文件中...,排序后再次写到本地文件 //分析: //1.要把文件中的数据读取进来。
我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀...小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!前言 在Java开发中,我们常常需要进行文件操作,例如数据读取、写入等。...BufferedWriter类可以将文本写入字符输出流,将字符串、字符数组和文本文件的内容写入输出流中。...在字符输出的过程中,除了提供缓冲区和自动刷新功能外,BufferedWriter还提供了一些其他的方法,例如:write()方法将指定的字符或字符串写入缓冲区;newLine()方法在缓冲区中写入一个换行符...flush():将缓冲区中的数据写入文件。close():关闭流并释放资源。应用场景案例 BufferedWriter类常用于对大量数据进行写入的场景,例如将数据写入文本文件或者日志文件。
在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。...Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。...3.流的分类 流可以根据不同的维度进行分类,比如可以根据流的方向进行分类,也可以根据传输的单位进行分类,还可以根据流的功能进行分类,比如以下几个。...① 按流向分类 输出流:OutputStream 和 Writer 为基类。 输入流:InputStream 和 Reader 为基类。...方法 2:BufferedWriter BufferedWriter 也属于字符流体系的一员,与 FileWriter 不同的是 BufferedWriter 自带缓冲区,因此它写入文件的性能更高(下文会对二者进行测试
第二十二天 IO-高效流(缓冲流)&转换流【悟空教程】 第22天 IO 第1章 高效流 1.1 高效流 (缓冲流) 在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时...1.5.2.1 字符高效输出流 BufferedWriter (换行) 将文本写入字符输出流,高效各个字符,从而提供单个字符、数组和字符串的高效写入。...其实在OutputStreamWriter流中维护自己的高效区,当我们调用OutputStreamWriter对象的write方法时,会拿着字符到指定的码表中进行查询,把查到的字符编码值转成字节数存放到...输出流。 OutputStreamWriter 2.6 编码表 2.6.1 编码表概念 在转换流或者字符串的构造方法当中,我们发现有一个参数始终没有使用,即字符串型的编码集名称。...在字符串中: 当我们将字符串转为对应的数字字节时,需要指定码表,则存储了为该字符该码表对应的数字字节,如果使用了其他码表重写翻译回字符串,则拼写的新字符串会乱码。
,必须连接在其他流上,目的是当数据“流经”当前流时对其进行加工处理,简化我们读写时对数据的相应操作 按流的方向分为 输入流:InputStream 输出流:OutputStream (所有字节流的超类...字节缓冲流 java.io.BufferedOutputStream java.io.BufferedInputStream 缓存字节输入输出流 是一对高级流, 在流连接的作用是提高读写效率(内部维护了一个...(字节流转字符流),他们是字符流的一对常用实现类,是一对高级流 实际开发中我们在读写文本数据时,它们是流连接中重要的一环 但是我们不会直接操 Java提供了这样一对转换流 OutputStreamWriter...字符缓冲流和缓冲加速(字符打印)流 java.io.BufferedWriter java.io.BufferedReader 以上两个就是缓冲字符输入与输出流是一对高级流,内部有缓冲区,读写文本数据效率高...* String readline() * 返回一行字符串,缓冲流会将一行字符串 * (到换行符"\n"为止,但不包括"\n")的内容 * 返回,若返回值为null,则表示流已经读取到了末尾
领取专属 10元无门槛券
手把手带您无忧上云