Java中IO流的详解
入门级IO流的介绍
青瓜与孤独
分享的不仅是知识,更是快乐!
展开
-
转换流Java
我们在没有学习字符流的时候的使用字节流读取文本文件时会出现乱码,其实出现乱码的情况不止一种,还有最常见的编码不同问题:GBK:我们计算机默认的编码表,一个中文字符两个字节UTF-8:万国码表,其中一个中文字符占用三个字节因为他们每个字符占用的字节是不一样的,不同编码之间的文件在使用时会出现乱码。字符输入转换流:InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。原创 2020-11-03 19:08:40 · 87 阅读 · 0 评论 -
对象的序列化和反序列化--IO流
对象的序列化和反序列化对象的序列化就是将对象写入文件,对象的反序列化就是将存在文件中的对象读取出来。原理很简单,上代码:import java.io.*;public class Text_对象的序列化 { public static void main(String[] args) throws Exception{ //创建序列化流 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\www原创 2020-10-23 18:47:43 · 132 阅读 · 0 评论 -
PrintStream打印流的使用
打印流的功能是非常强大的,我们在学习字节字符输出流的时候发现输出的数据要转换为字节或者字符才可以进行输出。但是打印流不需要这么麻烦,它的底层已经帮我们自动的转换为字节输出流对象。构造方法PrintStream(File file)使用指定的文件创建一个新的打印流,而不需要自动换行。PrintStream(File file, String csn)使用指定的文件和字符集创建新的打印流,而不需要自动换行。PrintStream(OutputStream out)创建一个新的打印流。Print原创 2020-10-23 14:23:34 · 547 阅读 · 0 评论 -
File类方法功能详解
首先引用Thinking in Java中的一段话:在学习那些真正用于在流中用来读取数据的类之前,我们先来看一下一个实用类库工具,他可以帮助处理文件目录问题。File类这个名字有一定的误导性,我们可能以为它指代的是一个文件,实际上却并非如此,它既能代表一个特定文件的名称,又能代表一个目录下一组文件的名称。实际上File就是文件和路径的抽象表示创建一个File对象前,我们先看一下构造方法:File(File parent,String child) 从父抽象路径名和子路径名字符串创建新的原创 2020-10-22 19:57:00 · 417 阅读 · 0 评论 -
BufferedOutputStream类的详解(画图分析)
首先看一个BufferedOutputStream可以这么理解,BufferedOutputStream类就是对FileInputStream类的加强。它是一个加强流。为什么成为加强流?就是因为这个加强流在进行输出时会在内存中开辟一块缓冲区。因为缓冲区在内存中的读写速度很快,以此来达到提升输出流的效率参考:缓冲流帮助理解...原创 2020-10-21 15:14:39 · 5551 阅读 · 5 评论 -
BufferedInputStream类的详解(画图分析)
BufferedInputStream 缓冲字节输入流类的关系图:缓冲流,那何为缓冲呢?其实就是在内存中开辟一块了缓冲区,因为内存的读写速度比硬盘要高得多,因此它可以做到提升读取速率的功能原理图8...原创 2020-10-20 17:18:32 · 952 阅读 · 0 评论 -
Java缓冲流概述详解(原理画图分析)
缓冲流也可以称作高效流,它可以对那些基本的字节字符流进行增强,达到提高数据的读写能力缓冲流原理创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。画图理解这个就好一个家庭饮水要从自来水厂输送,但是如果他家里有一个水桶的话,在用水的时候直接从这个水桶里取水就会比较快,因为距离比较近(内存里表示读取速度快)大白话:我们在使用水的时候从水桶取水不是会更快吗?但是所有的水均来自自来水厂(源数据是一样的,管道还是那条输送管道)...原创 2020-10-19 23:19:32 · 1061 阅读 · 2 评论 -
FileWriter类的详解(画图分析)
FileWriter字符输出流既然是字符输出流就表明输出的是字符,因此我们不必考虑一个字符有几个字节这个问题关系图:老规矩看一下构造方法FileWriter(File file) 给一个File对象构造一个FileWriter对象。FileWriter(File file, boolean append) 给一个File对象构造一个FileWriter对象。FileWriter(FileDescriptor fd) 构造与文件描述符关联的FileW原创 2020-10-19 22:06:04 · 1537 阅读 · 3 评论 -
文件夹的复制--Java中IO流实现
Java中IO流对文件夹进行复制文件的复制就是IO流中的读写过程,其实文件夹的复制也是读写的过程,但是在读写的时候我们要加以判断,如果是一个文件夹的话就遍历其中的文件,是一个重复的迭代过程思路分析:图片可能理解起来不是特别的清晰,看一下代码吧import java.io.*;public class Text_文件夹的复制 { public static void main(String[] args) throws Exception { System.out.println("开始复制原创 2020-10-19 21:16:30 · 239 阅读 · 0 评论 -
FileReader类的详解(画图分析)
首先我们先看一下FileReader类的继承关系从继承关系上我们可以看出,它不仅实现了抽象的字符流还继承了字符缓冲流为什么要使用字符流呢?我们在学习字节流的时候会发现使用字节流去读写中文字符时会出现乱码,因为字节流是一个字节一个字节在读写(即使定义字节数组也可能会出现乱码情况)GBK编码一个中文字符为两个字节,Unicode编码一个中文字符为三个字节FileReader使用第一步创建FileReader对象//构造方法FileReader(File file) 在给定从中读取数据的 Fi原创 2020-10-18 23:41:49 · 889 阅读 · 0 评论 -
FileOutputStream类详解(画图分析)
FileOutputStream类的详解首先我们先看一下它的构造方法FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。FileOutputStream(File file,boolean append) 意思同上,但是可以追加数据,不覆盖原有数据FileOutputStream(String path) 创建一个向具有指定名称的文件中写入数据的输出文件流。FileOutputStream(String path,bo原创 2020-10-18 19:27:01 · 1305 阅读 · 1 评论 -
FileInputStream类详解(画图分析)
FileInputStream详细介绍:FileInputStream:字节输入流关系图:构造方法FileInputStream(File file) 传递一个File对象,来将实际文件进行连接FileInputStream(String name) 传递一个表示路径的字符串,来将实际文件进行连接 画图理解为:当我们从一个水缸取水时,首先要知道水缸的位置在哪里吧,构造方法就是传递一个文件的地址(水缸的位置)。如果构造方法传递的参数有误就会抛出FileNotFoundException原创 2020-10-17 23:30:42 · 1757 阅读 · 0 评论 -
Java之IO流的分类
Java中IO流的简介IO流从从大体上分为输入流(Input)和输出流(Output)怎么理解IO流呢?#######三级标题四级标题五级标题六级标题原创 2020-10-17 21:02:34 · 208 阅读 · 0 评论