自学内容网 自学内容网

第七章 输入和输出处理 (IO流)

字符流:char

Reader->InputStreamReader(字节流InputStream,编码)->FileReader(路径 | | FIle对象)

乱码问题:reader = new InputStreamReader(new FileInputStream("路径"),"GBK");

import java.io.*;

public class InputReaderTest {
    public static void main(stringl] args){
        //Reader->InputStreamReader->FileReader
        Reader reader = null;//字符流
        try {
            reader
            = new InputstreamReader(new FileInputstream("D:\\4072\\1\\1.txt"),"GBK");
            char c[]= new char[100];
            reader .read(c):
            //将数组转换为字符串
            String msg = new string(c):
            System.out.println(msg);
        }catch(Exception e){
            e.printstackTrace(;
        }finally {
            try {
                reader.close();
            }catch(IoException e){
                e.printstackTrace();
            }
        }
    }
}

缓冲区: BufferedReader(字符流Reader)

import java.io.*;

public class BufferedReaderTest {
    public static void main(string[] args){
        //Reader->InputStreamReader->FileReader
        Reader reader = null;//字符流
        BufferedReader br = null;
        try {
            reader = new FileReader("D:l4072\\1\\1.txt");
            br = new BufferedReader(reader):
            String msg = nu1l;
            while((msg =br.readLine()!=nu11){
                System.out.printin(msg);
            }catch(Exception e){
            e.printstackTrace();
        }finally {
            try {
                br.close;
                reader.close();
            }catch(IoExceptione){
                e.printstackTrace();
            }
        }
    }
}

输出流 (写入)

Writer->OutputStreamWriter(字节流OutputStream,编码)->FileWriter(路径 || File对象,是否追加)

write(字符串) 写入方法

close() 释放资源

flush() 刷新缓冲区

import java.io.Filewriter ;
import java.io.IOException;
import java.io.Writer :

public class Outputwriter {
    public static void main(string[] args){
        //writer->0utputstreamwriter(字节流0utputstream,编码)->Filewriter(路径|File对象,是否
        追加)
        Writer writer = null;
        try {
            writer = new Filewriter("D:l14072\\1\\1.txt"
            ,true);
            //写入
            writer.write("\n123");
            System.out.printn("写入成功!!!!");
        }catch(Exception e){
            e.printstackTrace0;
        }finally {
            try {
                writer.closeO://释放资源
            }catch(IoExceptione){
                e.printstackTrace();
            }
        }
    }
}

缓冲区:BufferedWriter(Writer字符流)

import java.io.Bufferedwriter;
import java.io.Filewriter;
import java.io.IOException;
import java.io.writer;

public class BufferedwriterTest {
    public static void main(string[] args){
        //writer->Outputstreamwriter(字节流Outputstream,编码)->Filewriter(路径||Fi1e对象,是否
        追加)
        Writer writer = null;
        Bufferedwriter bw =null;
        try {
            writer = new Filewriter("D:l4072\1\1.txt"
            ,true);
            //创建缓冲区
            bw = new Bufferedwriter(writer);
            //写入信息到缓冲区
            bw.write("数据结构");
            bw.newLine();//换行
            bw.write("软件名词解释");
            bw.newLine();//换行
            bw.write("Linux虚拟机安装vmware");
            //将缓冲区数据刷新到字符流中
            bw.flush();
            System.out.printin("写入成功!!!!");
        }catch(Exception e){
            e.printstackTrace();
        }finally {
            try {
                bw.close();
                writer.close();//释放资源
            }catch(IoException e){
                e.printstackTrace();
            }
        }
    }
}

二进制读写

读取:InputStream->FileInputStream->DataInputStream(InputStream)

写入: OutputStream->FileOutputStream->DataInputStream(OutputStream)

import java.io.*;

public class DatastreamTest{
    public static void main(string[] args){
        //InputStream->FileInputStream->DataInputStream(Inputstream)
        //0utputStream->File0utputStream->Data0utputStream(OutputStream)
        DataInputstream dis =null;
        DataOutputStream dos =nu:
        try {
            dis = new DataInputstream(
                new FileInputstream("D:istar.jpg"));
            dos = new DataOutputStream(
                new Fileoutputstream("D:\\4072\\1.jpg")
                ”
                int b = -1;
            while((b=dis.read())!=-1){
                dos.write(b);
                System.out.printin("复制成功!!!"):
            }catch(Exception e){
            e.printstackTrace0;
        } finally {
            try {
                dos.close0;
                dis.close();
            }catch(IoExceptione){
                throw new RuntimeException(e);
            }
        }
    }
}

序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

序列化:将内存对象存储到硬盘

OutputStream->ObjectOutputStream(OutputStream)

OutputStream->FileOutputStream

反序列化:将硬盘中存储的对象转换为内存对象

InputStream->ObjectInputStream(InputStream)

InputStream->FileInputStream

import java.io.*;

public class objectTest {
    public static void main(string[] args){
        //outputstream->objectoutputstream(outputstream)
        //outputStream->File0utputstream
        ObjectoutputStream oos =nu1l;
        //Inputstream->objectInputstream(Inputstream)
        //Inputstream->FileInputstream
        ObjectInputstream ois = nu1l;
        try {
            //序列化
            oos = new objectoutputstream(
                new Fileoutputstream("D:14072\\1\\1.txt"));
            Student student = new student("张三",17);
            oos.writeobject(student);//写入对象
            System.out.printin("写入成功!!!");
            //反序列化
            ois = new objectInputstream(new FileInputstream("D:\\4072\\1\\1.txt"));
            Student stu=(student)ois.readobject();
            System.out.printin(stu.tostring());
        }catch(Exception e){
            throw new RuntimeException(e);
        } finally {
            try {
                oos.closeO;//释放资源
            }catch(IoException e){
                throw new RuntimeException(e)
            }
        }
    }
}

原文地址:https://blog.csdn.net/weixin_44348113/article/details/142556366

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!