前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >-1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

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

作者头像
noteless
发布2018-09-11 11:11:43
6960
发布2018-09-11 11:11:43
举报
文章被收录于专栏:noteless

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();

代码语言:javascript
复制
             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);

代码语言:javascript
复制
      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

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

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

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

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

这就是编码表。

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档