博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java高级_01
阅读量:6214 次
发布时间:2019-06-21

本文共 6621 字,大约阅读时间需要 22 分钟。

hot3.png

输入流:

从文件输入到内存,即:读文件
输出流:
从内存输出到文件,即:写文件

235248_UvG3_2282721.png

一 节点流(进行文件读写的基本流)

235248_iXVS_2282721.png

1 字符流(以字符char为单位进行读写)

  1.1 抽象父类
    Reader
    Writer
  1.2 针对文件的字符流
    FileReader
    read()  read(char[])
    FileWriter
    write() write(char[]) write(String)
2 字节流(以字节byte为单位进行读写)
  2.1 抽象父类
    InputStream
    OutputStream
  2.2 针对文件的字节流
    FileInputStream
         read()  read(byte[])
    FileOutputStream
         write(int)  write(byte[])
二 处理流(对节点流的包装,使文件读写更快速更方便)
  2.1 缓冲流(效率高)
      字符缓冲流
      BufferedReader
        readLine()
      BufferedWriter
                newLine()
      字节缓冲流
      BufferedInputStream
                read(byte[],int,int)
      BufferedOutputStream
        write(byte[],int,int)
   2.2 打印流(格式化)
      PrintWrite
               print(String) println(String)
      PrintStream
               print(String) println(String)
   2.3 Scanner
           next()  nextInt()  nextDouble()
   2.4 数据流
      DataInputStream
      DataOutputStream
   2.5 对象流(要操作的对象的类必须实现Serializable接口)
      ObjectOutputStream
      ObjectInputStream
练习:
1 复制文件
  从a.txt复制出b.txt
  注意:怎么判断文件读到结尾
2 把歌词一句一句打印出来
3 循环输入用户信息,保存到文件
  模拟登陆:键盘输入用户名和密码,检查用户名密码是否正确   

import java.io.File;import java.io.IOException;public class TestFile {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        File file = new File("a.txt");        System.out.println("exists=" + file.exists());        file.createNewFile();//创建file对象对应的文件        System.out.println("exists=" + file.exists());        System.out.println("dir=" + file.isDirectory());        System.out.println("file=" + file.isFile());    }}
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class Testreaderwriter {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        //1 流对象        FileReader fr = new FileReader("a.txt");        //2 读取字符        char c = (char)fr.read();        System.out.println(c);        //3 关闭        fr.close();                FileWriter fw = new FileWriter("a.txt",true);        //2 写入字符a        fw.write('a');        fw.write("bcdefg");        //3 关闭        fw.close();    }}
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Arrays;public class TestFileStream {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        //读文件,输入流        //1 搭建输入流        //FileInputStream fis1 = new FileInputStream("a.txt");        File file = new File("a.txt");        File file1 = new File("b.txt");        //如果是文件,就进行读写        if(file.isFile())        {            FileInputStream fis2 = new FileInputStream(file);            //2 从流中读取数据            byte b = (byte)fis2.read();            byte b1 = (byte)fis2.read();            byte[] bs = new byte[5];            fis2.read(bs);            System.out.println("b = " + b + " b1 = " + b1);            System.out.println("bs = " + Arrays.toString(bs));                        //3 关闭流            fis2.close();                        //1 构建文件输出流            FileOutputStream fos2 = new FileOutputStream(file1);            //2 从流中读取数据            fos2.write(55);            fos2.write(56);            fos2.write(bs);            //3 关闭流            fos2.close();        }                            }}
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class TestBuffered {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        //缓冲流        //1 节点流        FileWriter fw = new FileWriter("c.txt");        //2 处理流包装节点流        BufferedWriter bw = new BufferedWriter(fw);                bw.write("这是第一行");        bw.newLine();        bw.write("这是第二行");        bw.newLine();                bw.close();                //1 节点流        FileReader fr = new FileReader("c.txt");        //2 处理流包装节点流        BufferedReader br = new BufferedReader(fr);                System.out.println(br.readLine());        System.out.println(br.readLine());                br.close();    }}
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInput;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class TestObjectStream {    /**     * @param args     */    public static void main(String[] args) throws Exception {        // TODO Auto-generated method stub        FileOutputStream fileOutputStream = new FileOutputStream("b.txt");        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);        objectOutputStream.writeObject(new User("张三","123456"));        objectOutputStream.close();                FileInputStream fileInputStream = new FileInputStream("b.txt");        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);        User user = (User)objectInputStream.readObject();        System.out.println(user);        objectInputStream.close();    }}class User implements Serializable{    private String nameString;//用户名    private String pswdString;//密码        public User(String nameString,String pswdString)    {        this.nameString = nameString;        this.pswdString = pswdString;    }        public String toString()    {        return "用户名:" + nameString + " 密码:" + pswdString;    }}
import java.io.DataInputStream;import java.io.DataOutput;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class TestDataStream {    /**     * @param args     * @throws FileNotFoundException      */    public static void main(String[] args) throws Exception {        // TODO Auto-generated method stub        FileOutputStream fileOutputStream = new FileOutputStream("a.txt");        DataOutputStream dataOutputStream = new DataOutputStream(fileOutputStream);        dataOutputStream.writeInt(100);        dataOutputStream.writeBoolean(true);        dataOutputStream.writeDouble(100.11);        dataOutputStream.close();                FileInputStream fileInputStream = new FileInputStream("a.txt");        DataInputStream dataInputStream = new DataInputStream(fileInputStream);        int i = dataInputStream.readInt();        boolean b = dataInputStream.readBoolean();        Double d = dataInputStream.readDouble();        System.out.println(i + "," + b + "," + d);        dataInputStream.close();    }}

转载于:https://my.oschina.net/u/2282721/blog/406127

你可能感兴趣的文章
一篇很全面的freemarker教程
查看>>
C# DataSet和DataTable详解1
查看>>
烂泥:ubuntu下配置msmtp+mutt发送邮件
查看>>
CDQ分治 陌上花开(三维偏序)
查看>>
ios开发之--打印bool值
查看>>
打表找规律猜想是一种很好用的刷题技巧,写短码有用
查看>>
C# 加密术
查看>>
Java对象初始化详解
查看>>
Vue.js基础语法(二)组件
查看>>
常用的用户界面样式
查看>>
[转]MPI--MPI+VS2010 配置及编译
查看>>
L171
查看>>
nodeJS之HTTP
查看>>
poj2748
查看>>
poj2546
查看>>
windows运维如何批量远程桌面
查看>>
DB2 数据库的安装配置及监控
查看>>
IIS应用程序扩展名映射中无法添加“.svc”的问题
查看>>
ssd存储的SLC、MLC、TLC闪存芯片颗粒有什么区别?
查看>>
「小程序JAVA实战」小程序的flex布局(22)
查看>>