noteless 头像

-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
在两个对象进行构造的时候可以加入字符集。
 
计算机只能识别二进制数据,早期由来是电信号。
为了方便应用计算机,让它可以识别各个国家的文字。
就将各个国家的文字用数字来表示,并一一对应,形成一张表。
这就是编码表。
 
编码:字符串->字节数组
解码:字节数组->字符串
 
 
 

 

posted @ 2018-07-03 20:09  noteless  阅读(924)  评论(0编辑  收藏  举报