JavaSE-IO流

JavaSE自己总结的知识大纲,价值很高哦 这个知识大纲很是使用的,半小时你要是都能看懂的话,恭喜你,你已经是javase的佼佼者了 立即下载

IO概述

Input:将磁盘或硬盘、键盘等数据读入到内存

Output:从内存输出到磁盘、硬盘等

File类

文件和目录的抽象表示

构造方法
File(String pathname) #通过将给定的路径名的字符串转换成一个抽象路径名创建一个新的 File实例
File(URI uri) #通过将给定的 file: URI到一个抽象路径名创建一个新的 File实例
常用方法
boolean createNewFile()  #自动创建一个新的空文件命名的抽象路径名的当且仅当该文件不存在
boolean delete()  #删除文件或目录的路径名表示的抽象
boolean exists()  #检查文件或目录是否存在这种抽象路径名记
boolean isDirectory()  #测试文件是否通过这种抽象路径名表示是一个目录
boolean isFile()  #测试文件是否通过这种抽象路径名表示的是一种正常的文件
String[] list()  #返回的字符串在该目录下的抽象路径名的文件和目录命名为数组
File[] listFiles()  #返回表示抽象路径名的目录中的文件的路径名表示抽象的数组
String getAbsolutePath()  #返回此抽象路径名的绝对路径名的字符串
boolean mkdir()  #创建该目录下的抽象路径名命名
boolean mkdirs()  #创建该目录下的抽象路径名命名,包括任何必要的但不存在父目录

FileInputStream类

FileInputStream是读取原始字节的图像数据流

构造方法
FileInputStream(File file) #打开一个连接到一个实际的文件创建一个 FileInputStream,文件在文件系统的 File对象 file命名
常用方法
int read()  #从这个输入流读取一个字节的数据
int read(byte[] b)  #读到 b.length从输入流到字节数组数据字节
int read(byte[] b, int off, int len)  #读到 len从输入流到字节数组数据字节

FileInputStreamDemo类

package com.File.util;

import java.io.File;
import java.io.FileInputStream;
/*
 * @author Administrator
 * @version 1.0
 */
public class FileInputStreamDemo {
    public static void main(String[] args){
        File file = new File("C:\\Users\\Administrator\\Desktop\\134.txt");
        FileInputStream fis = null;
        int len= 0;
        String str = "";
        byte[] bytes1 = new byte[10];
        byte[] bytes2 = new byte[1024];
        try {
            fis = new FileInputStream(file);
            //单个字节读取
            while ((len = fis.read())!= -1){
                System.out.println("ASCII的值:"+len+";字符值:"+(char)len);
            }
            //全部字节读取(字节数组大小足够小)
            while ((len = fis.read(bytes1)) != -1){
                String s = new String(bytes1, 0, len);
                str += s;
            }
            System.out.println(str);
            //全部字节读取(字节数组大小足够大)
            while ((len = fis.read(bytes2)) != -1){
                System.out.println(new String(bytes2,0, bytes2.length));
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            if (fis != null){
                try {
                    fis.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

FileOutputStream类

FileOutputStream是写作的原始字节的图像数据流

构造方法
FileOutputStream(File file) #创建一个文件输出流写入指定的 File对象表示的文件
FileOutputStream(File file, boolean append) #创建一个文件输出流写入指定的 File对象表示的文件
常用方法
void write(int b)  #将指定的字节写入该文件输出流中
void write(byte[] b)  #写 b.length字节从指定的字节数组来此文件输出流
void write(byte[] b, int off, int len)  #写 len字节指定字节数组中的起始偏移 off此文件输出流
void flush()  #刷新输出流,使缓存数据被写出来

FileReader类

FileReader是读取字符流

构造方法
FileReader(File file) #创建一个新的 FileReader,给予 File读
常用方法
int read()  #从这个输入流读取一个字符的数据
int read(char[] b)  #读到 b.length从输入流到字符数组数据字符
int read(char[] b, int off, int len)  #读到 len从输入流到字符数组数据字符

FileReaderDemo类

package com.File.util;

import java.io.File;
import java.io.FileReader;
/*
 * @author Administrator
 * @version 1.0
 */
public class FileReaderDemo {
    public static void main(String[] args){
        File file = new File("C:\\Users\\Administrator\\Desktop\\134.txt");
        FileReader fr = null;
        int len = 0;
        char[] c1 = new char[10];
        char[] c2 = new char[1024];
        String s = "";
        try {
            fr = new FileReader(file);
            //单个字符来读取
            while ((len = fr.read()) != -1){
                System.out.println((char)len);
            }
            //全部字符读取(字符组数大小小于文件的字符大小)
            while ((len= fr.read(c1)) != -1){
               String str = new String(c1, 0, len);
                s += str;
            }
            System.out.println(s);
            //全部字符读取(字符数组大小足够大)
            while ((len = fr.read(c2)) != -1){
                System.out.println(c2);
            }
            while ((len = fr.read(c2)) != -1){
                System.out.println(new String(c2, 0, len));
            }
        }catch (Exception e){
            e.printStackTrace();
        } finally {
            if (fr != null){
                try {
                    fr.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

FileWriter类

FileWriter是书写字符流

构造方法
FileWriter(File file) #构建了一个文件对象FileWriter对象
FileWriter(File file, boolean append) #构建了一个文件对象FileWriter对象
常用方法
void write(int b)  #将指定的字符写入该文件输出流中
void write(char[] b)  #写 b.length字节从指定的字符数组来此文件输出流
void write(char[] b, int off, int len)  #写 len字符指定字符数组中的起始偏移 off此文件输出流
void flush()  #刷新输出流,使缓存数据被写出来

InputStreamReader类

InputStreamReader是桥从字节流字符流

构造方法
InputStreamReader(InputStream in) #创建一个inputstreamreader使用默认字符集
InputStreamReader(InputStream in, String charsetName) #创建一个inputstreamreader使用指定的字符集
常用方法
int read()  #读取单个字符
int read(char[] cbuf, int offset, int length)  #将字符读入一个数组的一部分

BufferedReader类

从一个字符输入流中读取文本,缓冲字符,以便提供字符、数组和行的有效读取

构造方法
BufferedReader(Reader in) #创建一个使用默认大小输入缓冲区的缓冲字符输入流
BufferedReader(Reader in, int sz) #创建一个使用指定大小的输入缓冲区的缓冲字符输入流
常用方法
int read()  #读取单个字符
int read(char[] cbuf, int off, int len)  #将字符读入一个数组的一部分
String readLine()  #读一行文本

OutputStreamWriter类

outputstreamwriter是桥从字符流的字节流

构造方法
OutputStreamWriter(OutputStream out) #创建一个outputstreamwriter使用默认的字符编码
OutputStreamWriter(OutputStream out, String charsetName) #创建一个outputstreamwriter使用指定的字符集
常用方法
void write(int c)  #写一个字符
void write(char[] cbuf, int off, int len)  #写入一个字符数组的一部分
void write(String str, int off, int len)  #写入字符串的一部分
void flush()  #冲流

BufferedWriter类

将文本写入到字符输出流中,缓冲字符,以便提供对单个字符、数组和字符串的有效写入

构造方法
BufferedWriter(Writer out) #创建一个使用默认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out, int sz) #创建一个新的缓冲字符输出流,该流使用给定大小的输出缓冲区
常用方法
void write(int c)  #写一个字符
void write(char[] cbuf, int off, int len)  #写入一个字符数组的一部分
void write(String s, int off, int len)  #写入字符串的一部分
void newLine()  #写行分隔符

实现文件的复制

package com.File.util;

import java.io.*;

/*
 * @author Administrator
 * @version 1.0
 */
public class FileCopyDemo {
    //主函数
    public static void main(String[] args) {
        //初始化File对象
        File file1 = new File("C:\\Users\\Administrator\\Desktop\\134.txt");
        File file2 = new File("C:\\Users\\Administrator\\Desktop\\10.txt");
        //初始化FileReader和FileWriter对象
        FileReader fileReader = null;
        FileWriter fileWriter = null;
        //初始化BufferedReader和BufferedWriter对象
        BufferedReader bufferedReader = null;
        BufferedWriter bufferedWriter = null;
        //定义一个String类型的变量
        String temp = "";
        //确定复制的源文件和目标文件
        try {
            //获取复制文件的初始时间
            long begin = System.currentTimeMillis();
            //实例化FileReader和FileWriter
            fileReader = new FileReader(file1);
            fileWriter = new FileWriter(file2,true);
            //实例化BufferedReader和BufferedWriter
            bufferedReader = new BufferedReader(fileReader);
            bufferedWriter = new BufferedWriter(fileWriter);
            //读取每一行文本
            while ((temp = bufferedReader.readLine()) != null){
                bufferedWriter.write(temp);
                bufferedWriter.newLine();
                bufferedWriter.flush();
            }
            //获取复制文件的最终时间
            long end = System.currentTimeMillis();
            System.out.println("复制文件共花了" + (end - begin) + "ms");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fileWriter != null){
                try {
                    fileWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (bufferedReader != null){
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (bufferedWriter != null){
                try {
                    bufferedWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

序列化与反序列化

序列化:把对象转换为字节序列的过程

反序列化:把把字节恢复为对象的过程

ObjectOutputStream类(序列化)

构造方法
ObjectOutputStream() #提供完全重新实现的子类对象不需要分配的私有数据只是用于实现对象的方式
ObjectOutputStream(OutputStream out) #创建一个对象写入到指定的输出流
常用方法
void write(byte[] buf)  #写入一个字节数组
void write(byte[] buf, int off, int len)  #写入字节数组的字节数
void write(int val)  #写一个字节
void writeObject(Object obj)  #写入指定的对象的对象

Student类

package com.File.util;

import java.io.Serializable;

/*
 * @author Administrator
 * @version 1.0
 */
//对类进行序列化,首先实现Serializable接口
public class Student implements Serializable {
    //定义成员变量
    private String name;
    private char sex;
    //无参构造方法
    public Student(){

    }
    //有参构造方法
    public Student(String name,char sex){
        this.name = name;
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }
    public String toString(String name,char sex){
        return "[" + this.name + "," + this.sex + "]";
    }
}

ObjectStreamDemo类

package com.File.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/*
 * @author Administrator
 * @version 1.0
 */
public class ObjectStreamDemo {
    //主函数
    public static void main(String[] args) {
        //初始化Student对象
        Student student = new Student("邓一",'男');
        //初始化File对象
        File file = new File("C:\\Users\\Administrator\\Desktop\\student");
        //初始化FileOutputStream
        FileOutputStream fileOutputStream = null;
        //初始化ObjectOutputStream
        ObjectOutputStream objectOutputStream = null;
        //实例化FileOutputStream
        try {
            fileOutputStream = new FileOutputStream(file);
            objectOutputStream = new ObjectOutputStream(fileOutputStream);
            objectOutputStream.writeObject(student);
            objectOutputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileOutputStream != null){
                try {
                    fileOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (objectOutputStream != null){
                try {
                    objectOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

ObjectInputStream类(序列化)

构造方法
ObjectInputStream()  #为子类,完全重新实现了ObjectInPutStream没有分配私有数据只是用于实现对象输入流的方式
ObjectInputStream(InputStream in)  #创建一个对象输入流读取从指定的输入流
常用方法
int read()  #读取一个字节的数据
int read(byte[] buf, int off, int len)  #读入一个字节数组
Object readObject()  #从对象输入流对象

ObjectStreamDemo类

package com.File.util;

import java.io.*;

/*
 * @author Administrator
 * @version 1.0
 */
public class ObjectStreamDemo1 {
    //主函数
    public static void main(String[] args) {
        //初始化File对象
        File file = new File("C:\\Users\\Administrator\\Desktop\\student");
        //初始化FileInputStream
        FileInputStream fileInputStream = null;
        //初始化ObjectInputStream
        ObjectInputStream objectInputStream = null;
        try {
            //实例化FileInputStream
            fileInputStream = new FileInputStream(file);
            //实例化ObjectInputStream
            objectInputStream = new ObjectInputStream(fileInputStream);
            //向下转型
            Student student = (Student) objectInputStream.readObject();
            System.out.println(student.getName());
            System.out.println(student.getSex());
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (fileInputStream != null){
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (objectInputStream != null){
                try {
                    objectInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
郝斌java ppt+源程序 郝斌java ppt+源程序,适合自学 立即下载

相关推荐

整理郝斌老师javaSE复习大纲

本文件是一份对java 基础介绍的较详细的大纲,相信对刚入门的同学有一定的帮助 。

【JavaSE】IO流

【学习记录】Java后端路线,Java核心语法,关于IO的那些事儿。

m0_64098804的博客 1111

张龙老师的javaSE chat code

张龙老师的javaSE chat code

JavaSE—IO流

用一个通道一端链接文件,一端连接程序,读取文件的话,则认为这通道是输出流还是输入流呢?站在文件的角度是输出流。站在程序的角度是输入流。J2SDK所提供的所有流类型位于包 Java.io内,都分别继承自以下四种抽象流类型。(字节流)Reader(字符流)(字节流),Writer(字符流)这四个类都是抽象类,可以把这四个类想象成四根不同的管道。一端接着你的程序,另一端接着数据源,你可以通过输出管道从数据源里面往外读数据,也可以通过输入管道往数据源里面输入数据,总。

2501_90237168的博客 741

宝塔部署若依前端出现502解决方法

若依系统是一个基于Java语言的开源项目,旨在帮助开发者减少开发时间,特别适用于需要快速开发出一套具有用户管理、菜单管理、权限管理、定时任务、日志管理等功能的简单系统。系统分为前后端分离、分布式等架构前后端分离部署教程然而通过宝塔来部署若依系统会遇见一些问题,特此在这里记录一下。

m0_74823683的博客 776

Win10无外网热点搭建全指南:纯局域网通信与设备互联

热点并不是只有共享上网一种用途。在很多工程与办公场景中,我们需要的是让手机、笔记本、开发板等设备临时组成一个纯内网,完成文件传输、端口调试或局域网联机,而不需要任何外网出口。Win10笔记本在不连接互联网的状态下,借助系统移动热点或netsh承载网络,完全可以创建一个无外网热点,实现设备间二层互通。其核心在于利用SoftAP建立虚拟无线接入点,并绕开或禁用ICS的NAT转发。掌握这一技术,可在会议、出差、物联网调试等场景中快速搭建临时局域网,无需额外路由器。本文详细梳理三种实现路径、操作步骤及常见故障排查,

weixin_29230773的博客 239

javaSE:IO流

本文详细介绍与使用了IO流各方法

2401_88007700的博客 1091

LIN协议栈 AUTOSAR架构下 状态管理

LIN State Manager 通过对这些状态的管理和转换,实现了对 LIN 总线通信状态的精确控制,以满足汽车电子系统中不同场景的需求。

汽车电子从业者,电子爱好者。 2052

JavaSE总结(三)IO流

JavaSE总结(三)IO流 文章目录JavaSE总结(三)IO流一.File类二.IO原理三.流的分类1.字节流和字符流:1)字节流2)字符流3)字节流和字符流的区别2.输入流和输出流:1)输入流(Input)2)输出流(Outpu)3.输入字节流(InputStream)与输出字节流(OutputStream)InputStream:OutputStream:4.输入字节流(Reader)和输...

ITgagaga的博客 208

NVMe-MI 协议解析:带外管理框架与实现原理

本文深入解析了NVMe-MI协议,这是一种用于NVMe固态硬盘的标准化带外管理接口。文章详细阐述了其独立于操作系统的管理框架,通过MCTP协议栈实现,支持SMBus/I2C、PCIe VDM和I3C等物理层,从而在系统故障时仍能可靠地进行健康监控、固件升级等关键运维操作,是现代数据中心存储管理的核心基础设施。

lll78的博客 962

Mac查看以太网信息,IP地址,查看配置桥接网络,使得虚拟机和本机ping通--linux系统part

4. 在本机的终端中使用ping命令,查看是否能够ping通虚拟机系统,如下图所示已经ping通。3-查看IP为192.168.1.244,还可以看到一些具体信息,如TCP/IP,DNS等;2-打开centos,进入管理员root模式(使用su命令加上输入管理员密码)然后使用ifconfig命令查看端口地址,如下所示为192.168.1.248。3-在虚拟机内使用ping命令,测试是否和网络连通,如下图所示已经ping通。打开虚拟机设置-点击网络适配器-选择桥接网络。1-打开设置,选择网络。

m0_65485230的博客 1549

JavaSE——IO流

以字节为单位,一个字节一个字节输出。

weixin_69032308的博客 198

实测对比:DECIMER、Img2Mol、MolScribe,哪个化学结构识别工具更靠谱?

化学结构识别(CSR)工具的核心任务是将分子结构图像转换为SMILES(Simplified Molecular Input Line Entry System)表示。这一过程需要克服图像质量差异、绘制风格变化以及特殊基团识别等挑战。三款工具采用不同的技术路线:DECIMER:基于EfficientNetV2+Transformer架构,优势在于处理标准期刊文献中的分子图示Img2Mol。

weixin_32576389的博客 348

JavaSE之IO流、网络编程、反射

JavaSE之IO流、网络编程、反射

weixin_44528963的博客 808

【RDMA】13. RDMA之用户态与内核态交互

原文:https://zhuanlan.zhihu.com/p/346708569 在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。 但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱

我的笔记本 4285

储能电池管理系统介绍(一)

介绍储能BMS的架构以及各模块功能

manjixingkong1234的专栏 1916

JavaSE基本知识补充 -IO流

IO(Input/Output):输入和输出,指的是某个设备或环境进行数据的输入或者输出。例如:键盘的输入,再比如显示器就是输出设备,输出图像。对于java来说输入输出问题,java将它抽象成流对象来解决。以游戏程序为中心读取文件就是输入,写入文件是输出。所有的文件的传递,都变成流。从外部读取文件叫做输入。reader把游戏记录保存到外部设备(目标文件)叫做输出。writer从输入输出角度,分为输入流,输出流从数据角度,分为字符流:Writer和Reader高级的。

m0_75163045的博客 1042

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JavaSE中IO流简介

JavaSE中IO(Input Output)流          作用: IO流用来处理设备之间的数据传输                    Java对数据的操作是通过流的方式                    Java用于操作流的对象都在IO包中                    流按操作数据分为两种:字节流和字符流                    流按流向分...

labixiaoxin868的专栏 304

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JavaSE笔记15.5-IO流-系统流

JavaSE笔记15.5-IO流-系统流一级目录二级目录三级目录 一级目录 二级目录 三级目录

qq_38503984的博客 232

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Day20JavaSE——IO流之字节流

Day20JavaSE——IO流之字节流 文章目录Day20JavaSE——IO流之字节流IO流概述字节流的抽象基类FileOutputStream&FileInputStreamFileOutputStreamFileInputStream高效字节输入输出流字节流复制文件复制文本文件&MP3文件异常处理 IO流概述 A:IO流概述 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 java.io B:IO流分类 a:按照数

adAir_liu的博客 469

Javase 基础加强 —— 08 IO流

本系列为笔者学习Javase的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员Java+AI智能辅助编程全套视频教程,java零基础入门到大牛一套通关》,章节分布参考视频教程,为同样学习Javase系列课程的同学们提供参考。

Celeste的博客 461

JavaSE笔记15.1-IO流-概述

JavaSE笔记15.1-IO流-概述一. 流的概念二. 流的分类1. 输入流和输出流2. 字节流和字符流3. 节点流和处理流三. IO流类图结构 一. 流的概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。 IO流用来处理设备(内存、硬盘等)之间的数据传输。 二. 流的分类 根据数据流向分类:输入流、输出流 根据数据单元分类:字节流、字符流 根据功能分类:节点流、处理流 1. 输入流和输出流 输入流:程序从数据源中读取数据 输出流:将数据从程序中写到预期的目的地 2. 字节流和字符

qq_38503984的博客 313
上一篇: JavaSE-异常
下一篇: JavaSE-多线程
JP-Destiny
博客等级 码龄8年 34粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值