-1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

File类

•文件和目录路径名的抽象表示形式

构造方法

•public File(String pathname)

•public File(String parent,Stringchild)

•public File(File parent,Stringchild)

创建功能

•publicboolean createNewFile()

•publicboolean mkdir()

•publicboolean mkdirs()

删除功能

•publicbooleandelete()

重命名功能

•publicboolean renameTo(Filedest)

判断功能

•publicboolean isDirectory()

•publicboolean isFile()

•publicbooleanexists()

•publicboolean canRead()

•publicboolean canWrite()

•publicboolean isHidden()

基本获取功能

•public String getAbsolutePath()

•public String getPath()

•public String getName()

•public long length()

•public long lastModified()

高级获取功能

•public String[] list()

•public File[] listFiles()

IO流用来处理设备之间的数据传输

Java对数据的操作是通过流的方式

Java用于操作流的对象都在IO包中

按照数据流向

•输入流  读入数据

•输出流  写出数据

按照数据类型

•字节流

•字符流

字节流的抽象基类:

•InputStream ,OutputStream。

字符流的抽象基类:

•Reader , Writer。

注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

•如:InputStream的子类FileInputStream。

•如:Reader的子类FileReader。

OutputStream

•FileOutputStream

FileOutputStream的构造方法

FileOutputStream(File file)

FileOutputStream(String name)

写入数据

public void write(int b)

public void write(byte[] b)

public void write(byte[] b,int off,int len)

InputStream

•FileInputStream

            FileInputStream的构造方法

•FileInputStream(File file)

•FileInputStream(String name)

             FileInputStream的成员方法

•public int read()

•public int read(byte[] b)

字节缓冲输出流

•BufferedOutputStream

字节缓冲输入流

•BufferedInputStream

转换流

转换流的由来

•字符流与字节流之间的桥梁

•方便了字符流与字节流之间的操作

OutputStreamWriter 字符输出流

•public OutputStreamWriter(OutputStream out)

•public OutputStreamWriter(OutputStream out,String charsetName)

InputStreamReader 字符输入流

•public InputStreamReader(InputStream in)

•public InputStreamReader(InputStream in,String charsetName)

OutputStreamWriter写数据方法

•public void write(int c)

•public void write(char[] cbuf)

•public void write(char[] cbuf,int off,int len)

•public void write(String str)

•public void write(String str,int off,int len)

OutputStreamWriter读数据方法

•public int read()

•public int read(char[] cbuf)

字符流

FileWriter

FileReader

创建流对象,建立数据存放文件

•FileWriter fw = new FileWriter(“Test.txt”);

调用流对象的写入方法,将数据写入流

•fw.write(“text”);

关闭流资源,并将流中的数据清空到文件中。

•fw.close();

             FileWriter fw = null;
              try{
                  fw = new FileWriter("Test.txt");
                  fw.write("text");
              }
              catch (IOException e){
                  System.out.println(e.toString());
              }
              finally{
                  If(fw!=null)
                  try{
                      fw.close();
                  }
                  catch (IOException e){
                      System.out.println(e.toString());
                  } 
              }

建立一个流对象,将已存在的一个文件加载进流。

•FileReader fr = newFileReader(“Test.txt”);

创建一个临时存放数据的数组。

•char[] ch = new char[1024];

调用流对象的读取方法将流中的数据读入到数组中。

•fr.read(ch);

      FileReader fr = null;
        try {
            fr = new FileReader("c:\\test.txt");
            char[] buf = new char[1024];
            int len = 0;
            while ((len = fr.read(buf)) != -1) {
                System.out.println(new String(buf, 0, len));
            }
        } catch (IOException e) {
            System.out.println("read-Exception :" + e.toString());
        } finally {
            if (fr != null) {
                try {
                    fr.close();
                } catch (IOException e) {
                    System.out.println("close-Exception :" + e.toString());
                }
            }
        }

字符流缓冲

BufferedWriter

BufferedReader

特殊功能

•BufferedWriter

•void newLine()

•BufferedReader

•String readLine()

操作基本数据类型

•DataInputStream

•DataOutputStream

内存操作流

操作字节数组

•ByteArrayInputStream

•ByteArrayOutputStream

操作字符数组

•CharArrayReader

•CharArrayWrite

操作字符串

•StringReader

•StringWriter

打印流

PrintWriter

PrintStream

标准输入输出流

System类中的字段:in,out。

它们各代表了系统标准的输入和输出设备。

默认输入设备是键盘,输出设备是显示器。

System.in的类型是InputStream.

System.out的类型是PrintStream是OutputStream的子类FilterOutputStream 的子类.

随机访问流

RandomAccessFile概述

•RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。

合并流

SequenceInputStream概述

•SequenceInputStream类可以将多个输入流串流在一起,合并为一个输入流,因此,该流也被称为合并流。

SequenceInputStream的构造方法

•SequenceInputStream(InputStream s1, InputStream s2) 

•SequenceInputStream(Enumeration<? extends InputStream> e)

可以用于多文件的合并

序列化

序列化流

•ObjectOutputStream

反序列化流

•ObjectInputStream

编码

字符流的出现为了方便操作字符。

更重要是的加入了编码转换。

通过子类转换流来完成。

•InputStreamReader

•OutputStreamWriter

在两个对象进行构造的时候可以加入字符集。

计算机只能识别二进制数据,早期由来是电信号。

为了方便应用计算机,让它可以识别各个国家的文字。

就将各个国家的文字用数字来表示,并一一对应,形成一张表。

这就是编码表。

编码:字符串->字节数组

解码:字节数组->字符串

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学 Web 前端

08 - JavaSE之IO流

JAVA流式输入输出原理:可以想象成一根管道怼到文件上,另一端是我们程序,然后流的输入输出都是按照程序本身作为第一人称说明的。比如 input,对于我们程序来说...

16270
来自专栏用户画像

获得InputStream,读取配置文件的方式

InputStream in = new BufferedInputStream(new FileInputStream("E:\\svn_new\\3icom...

63320
来自专栏Android开发指南

14:IO之字符字节流

37090
来自专栏Hongten

java开发_读写txt文件操作

========================================================

78720
来自专栏java架构师

Android一 流

补充Java知识:流 java.io 四个抽象类: 字节流:InputStream OutputStream 字符流:Reader Writer 站在程序角度上...

360110
来自专栏Play & Scala 技术分享

Java字符串处理技巧

32050
来自专栏Android开发指南

4.XML

35990
来自专栏Python爱好者

Java基础笔记21

18440
来自专栏钟绍威的专栏

初识字节流+实现缓冲字节流OutputStream的主要方法构造方法读关流实现BufferedInputStream实现BufferedOutputStream为什么read()返回的是Int型而不是

java中的IO流可以分为两种:字符流和字节流 字符流,顾名思义,就是对字符进行操作,只能操作文本文件 字节流,就是对字节进行操作,然而所有文件都是由字...

20080
来自专栏Java帮帮-微信公众号-技术文章全总结

JSP与EL表达式重点学习笔记(2)

EL(表达式语言) 1 EL概述 ? 1.1 EL的作用 JSP2.0要把html和css分离、要把html和javascript分离、要把Java脚本替换成标...

28040

扫码关注云+社区

领取腾讯云代金券