zoukankan      html  css  js  c++  java
  • 文件IO读写流简介

    • 字符流有两个抽象类:Writer   Reader。其对应子类FileWriter,FileReader可实现文件的读写操作
    • 同样,字节流也有两个抽象类:InputStream OutputStream。其对应子类有FileInputStream,FileOutputStream可实现文件读写
    • IO流中的重要方法:read()方法返回-1,readLine方法返回null。用法列如:while((line=br.readLine())!=null)。Scanne类中的hasNext()方法如果此扫描器的输入中有另一个标记,则返回 true。hasNextLine()方法如果在此扫描器的输入中存在另一行,则返回 true。next() 方法查找并返回来自此扫描器的下一个完整标记,nextLine() 此扫描器执行当前行,并返回跳过的输入信息。
    • 在I/O流中可以创建文件对象,并且带入文件名的类,常见的有以下7种:

      File file=new File("word.txt");

      FileInputStream fis=new FileInputStream("word.txt");

      FileOutputStream fos=new FileOutputStream("word.txt");

      FileReader (String filename);

      FileWriter (String filename);

      PrintStream (String filename);

      PrintWriter (String filename);

    • 文件File是java.io包中的一个重要的非流类。File以一种系统无关的方式表示一个文件对象的属性。
    • File类用于创建目录的方法是mkdir(),用于创建父目录的方法是mkdirs().

    InputStream,BufferedInputStream

    read()

    public abstract int read() throws IOException

    从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。

    返回:

    下一个数据字节;如果到达流的末尾,则返回 -1。

    close() 

    关闭此输入流并释放与该流关联的所有系统资源。

    OutputStream,BufferedOutputStream

    write()

    public void write(int b) throws IOException

    将指定的字节写入此缓冲的输出流。

    参数:

    b - 要写入的字节。

    close() 

    关闭此输出流并释放与此流有关的所有系统资源。

    BufferedReader

    read()

    public int read() throws IOException

    读取单个字符

    返回:

    作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1

    readLine

    public String readLine() throws IOException

    读取一个文本行。通过下列字符之一即可认为某行已终止:换行 (' ')、回车 (' ') 或回车后直接跟着换行。

    返回:

    包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

    close() 

    关闭该流并释放与之关联的所有资源。

    Reader,InputStreamReader

    read()

    public int read() throws IOException

    将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞

    返回:

    读取的字符,如果已到达流的末尾,则返回 -1

    close() 

    关闭该流并释放与之关联的所有资源。

    BufferedWriter

    write(int c) 

    写入单个字符。

    newLine()

    public void newLine() throws IOException

    写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 (' ') 符。

    返回:

    包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

    close() 

    关闭此流,但要先刷新它。

    Writer,OutputStreamWriter

    write()

    public void write(int c) throws IOException

    写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。

    用于支持高效单字符输出的子类应重写此方法。

    参数:

    c - 指定要写入字符的 int。

    close() 

    关闭此流,但要先刷新它。

    例题:复制文件:把文件a.txt从D盘复制到E盘,操作方法如下。

    • 方法一:
    import java.io.BufferedReader;
    
    import java.io.BufferedWriter;
    
    import java.io.FileNotFoundException;
    
    import java.io.FileReader;
    
    import java.io.FileWriter;
    
    import java.io.IOException;
    
     
    
    public class Q2 {
    
    public static void main(String[] args) throws IOException {
    
    BufferedReader br = new BufferedReader(new FileReader("D:\a.txt"));
    
    BufferedWriter bw = new BufferedWriter(new FileWriter("E:\a.txt"));
    
    String line = null;
    
    while((line=br.readLine())!=null){
    
    bw.write(line);
    
    bw.newLine();
    
    }
    
    bw.close();
    
    }
    
    }
    • 方法二
    import java.io.File;
    
    import java.io.IOException;
    
    import java.io.PrintWriter;
    
    import java.util.Scanner;
    
     
    
    public class test4 {
    
    public static void main(String[] args) throws IOException {
    
    File file = new File("C://a.txt");
    
    Scanner sc=new Scanner(file);
    
    PrintWriter pw=new PrintWriter("D://a.txt");
    
    while(sc.hasNextLine()){
    
    String str=sc.nextLine();
    
    pw.println(str);
    
    }
    
    pw.close();
    
    }
    
    }
    
  • 相关阅读:
    委托与事件参数的简单运用
    C#消息队列专题
    项目计划流程简易描述
    cookies 客户端历史记录篇
    朋友做的VS2005插件:等号两边值互换
    SSE2指令集系列之二
    SSSE3指令集
    SSE3指令集系列
    SSE特殊指令集系列之一
    SSE2指令集系列之一
  • 原文地址:https://www.cnblogs.com/b-l-java/p/6131684.html
Copyright © 2011-2022 走看看