关于Java(10)

article/2025/9/1 3:20:44

关于Java(10)第十四章-I/O输入输出

1. Java中流的分类有哪些?

  • 流从流动方向上看:一般分为输入流和输出流
    输入流:如System.in是一个InputStream类型输入流
    输出流:如System.out 是一个PrintStream类型输出流
  • 读取类型上分:一般分为字节流和字符流
    字节流:如System.in是一个InputStream类型字节流
    字符流:如new InputStreamReader(System.in)是一个字符流对象
  • 流从发生的源头:分为节点流和过滤流类
    节点流:直接操作目标设备对应的流 ,如文件流,标准输入输出流
    过滤流:继承带有关键字Filter的流 ,用于包装操作节点流,方便读写各种类型的数据
  1. 字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些?
  • 字节流InputStream
    java.io.InputStream
    java.io.FileInputStream //文件输入流,对应 java.io.InputstreamReader
    java.io.PipedInputStream //管道输入流,对应 java.io.Pipedreader
    java.io.ObjectInputStream // 对象输入流,用于序列化问题
    java.io.ByteArrayInputStream // 字节输入流,对应java.io.CharArrayReader
    java.io.SequenceInputStream // 序列输入流
    java.io.FilterInputStream // 过滤输入流包含一些其他输入流,它用作其基本数据源,可能沿途转换数据或提供其他功能。
    java.io.DataInputStream
    java.io.BufferedInputStream
    java.io.PushbackInputStream
  • 字节流OutputStream:
    java.io.OutputStream
    java.io.FileOutputStream // 文件输出流,对应 java.io.FileReader
    java.io.PipedOutputStream // 管道输出流,对应 java.io.PipedReader
    java.io.ObjectOutputStream //对象输出流
    java.io.ByteArrayOutputStream //字节输出流,对应 java.io.CharReader
    java.io.FilterOutputStream // 过滤输出流
    java.io.DataOutputStream
    java.io.BufferedOutputStream
    java.io.PrintStream
    在这里插入图片描述
    (图源Java课PPT)
  1. 字节流与字符流的转化是怎样的?Java对此提供了哪些支持?
    输入字节流转为字符流需要用到inputstreamReader的构造方法:
//InputStreamReader(InputStream in)//例如:
InputStreamReader ins = new InputStreamReader(System.in);
InputStreamReader ins = new InputStreamReader(new FileInputStream(“test.txt”));

输出字符流转为字节流用到OutputStreamWriter或PrintWriter的构造方法:

//OutputStreamWriter(OutputStream out)
//PrintWriter(OutputStream out)
//例如:
OutputStreamWriter outs = new OutputStreamWriter(new FileOutputStream(“test.txt”));
  1. Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。
    下图反映了对文件进行读写操作的一种装配方式
    对于从磁盘上读文件,可以装配如下:
    图源Java课PPT
  • 过滤流:BufferedInputStream和BufferedOutputStream, 缓存作用,用于装配文件磁盘、网络设备、终端等读写开销大的节点流,提高读写性能
    (图源Java课PPT)
  1. 什么是对象的序列化和反序列化?Java对此提供了哪些支持?
    序列化,又称串行化,将实现了Seriallizable接口的对象转换成一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象,后者又称反序列化。
    目的:便于介质存储和网络传输
    支持:使用ObjectInputStream类和ObjectOutputStream类
import java.io.*;public class Student implements Serializable { //序列化int number=1;String name;Student(int number,String n1) {this.number = number;this.name = n1;}
public static void main(String arg[]) {String fname = "Student.obj"; //文件名Student s1 = new Student(1,"Wang");s1.save(fname);s1.display(fname);
}
void save(String fname) {try{FileOutputStream fout = new FileOutputStream(fname);ObjectOutputStream out = new ObjectOutputStream(fout);out.writeObject(this);               //对象序列化out.close();}catch (FileNotFoundException fe){}catch (IOException ioe){}
}
void display(String fname) {try{FileInputStream fin = new FileInputStream(fname);ObjectInputStream in = new ObjectInputStream(fin);Student u1 = (Student)in.readObject();  //对象反序列化System.out.println(u1.getClass().getName()+"  "+u1.getClass().getInterfaces()[0]);System.out.println("  "+u1.number+"  "+u1.name);in.close();}catch (FileNotFoundException fe){}catch (IOException ioe){}catch (ClassNotFoundException ioe) {}
}
}
//运行结果 :Student  interface java.io.Serializable     1    Wang
  1. Java的File类表示什么?有什么作用?
    定义:File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类。
    作用:File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
  2. Java对文件的读写分别提供了哪些支持?
    ① File 文件(或目录)路径名字的抽象表示
    ② FileDescriptor 代表一个打开文件的文件描述。
    ③FileFilter & FilenameFilter 接口,列出满足条件的文件,用于:
    File.list(FilenameFilter fnf)
    File.listFiles(FileFilter ff)
    FileDialog.setFilenameFilter(FilenameFilter fnf)
    FileDialog是java.awt包中的类。
    ④ FileInputStream 以字节流的形式顺序读文件。
    ⑤ FileReader 以字符流的形式顺序读文件。
    ⑥ FileOutputStream 以字节流的形式顺序写文件。
    ⑦ FileWriter 以字符流的形式顺序写文件。
    ⑧ RandomAccessFile提供对文件的随机访问支持。

http://chatgpt.dhexx.cn/article/tnTIgW7j.shtml

相关文章

java 01~~10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言Day01——从“Hello World”开始吧Day02——基本算术操作练习:四则运算运行结果 Day03——基本if语句练习:求绝对值运行结果 小结 Day04…

Java-10

学习来源:日撸 Java 三百行(31-40天,图)_闵帆的博客-CSDN博客 33 图的广度优先遍历 33.1与树的广度优先遍历类似。 33.2为每个核心方法写一个测试方法。这叫单元测试。 代码: /********************** Breadth fi…

Java 10 新特性解读

前言  2018年3月21日,Oracle官方宣布Java10正式发布。  需要注意的是 Java 9 和 Java 10 都不是 LTS (Long-Term-Support) 版本。和过去的 Java 大版本升级不同,这两个只有半年左右的开发和维护期。而未 来的 Java 11,也就是 18.9 LTS&am…

【小家java】java10新特性(简述十大新特性) 小步迭代

相关阅读 【小家java】java5新特性(简述十大新特性) 重要一跃 【小家java】java6新特性(简述十大新特性) 鸡肋升级 【小家java】java7新特性(简述八大新特性) 不温不火 【小家java】java8新特性&#xff0…

IP地址与端口Port

IP地址 IP地址:InetAddress 唯一定位一台网络上的计算机127.0.0.1 (本机localhost) IP地址的分类 IPv4:网际协议版本4(英语:InternetProtocolversion4,IPv4),又称互联网…

Port端口

一、端口号的定义 端口表示当前计算机上的一个进程。 例如:手机开着 微信 王者 QQ 这时候我们使用QQ给对方发送一条消息,这时我们要知道对方的ip地址,这样才能到达指定的位置,但是消息到了指定位置,又怎么知道这个消…

linux普通用户使用1024以下的端口(80)

linux对于非root权限用户不能使用1024以下的端口,对于一些服务,过高的权限,会带来一定的风险。那么对于低权限的用户如何对外开放1024以下的端口。我这里找到几种办法并且亲测可行 首先搭建环境centos7 账户tengine没有sudo 权限 1.nginx 等…

价值连城的神站:广西图书馆的电子资源(视频、书、期刊...)

网站地址:http://wap.gxlib.org.cn:9080/ermsClient/browse.do广西壮族自治区图书馆的电子资源平台,该平台开放注册,注册登录成功后可以免费使用平台内的所有资源。该平台的资源库异常丰富,可以说是在线图书馆该有的资源这里都有了…

IMC美丽链:区块链与世界上最大的酿酒商的恩怨情仇!

酒业巨头Anheuser-Busch InBev旨在通过区块链技术改变数字广告供应链。 现在我们在网上,到处都可以看到广告。但是其实很多都是欺诈信息,比如我们上网站购物,可能就会遇到有欺诈广告,导致我们买到假货。 或者是我们在网上搜索&a…

2021年中国苹果行业产业链分析:上下游市场稳定,苹果行业市场运行情况平稳增长 [图]

一、概述 苹果目前是世界四大水果之首,苹果产业链上游主要由种子、肥料、农药等构成,下游主要加工成果脯、苹果干、苹果酒和苹果醋等。 苹果产业链 资料来源:智研咨询整理 二、上游产业 化肥是农业生产中一种十分常见的生产资料,…

这两个世界此次对决之后,“互联网+”与数字化真的要来了

昨天,微信上一个朋友忧心忡忡的问了我一个问题,“这次疫情对传统企业影响巨大,好多企业迟迟不能复工,面临生死存亡的挑战。你觉得这对于我们这样的数字化转型服务的公司来说,会有什么影响呢?” 我的回答是…

说出来你可能不信,现在连酒厂都在招算法工程师

原创:HyperAI超神经 关键词:啤酒 智能酿造 根据数据显示,从 1960 年代至今,啤酒的受欢迎程度每年增加,逐渐成为了消耗量最大的饮品之一。 到 2017 年的统计数据,中国人均啤酒年消耗达到了 60 瓶之多。…

中国企业软件必然革命世界企业软件

(1)先扯点没用的:宏观经济环境 三架马车:出口、固定资产投资、消费。 我丝毫不怀疑中国会在2035年,GDP超过美国。也就是说,我们总体来说,坐在中国这艘上升发展的飞机上,享受着红利。…

[机器学习笔记] 用Python分析:红葡萄酒质量分析(数据探索)

用Python分析:红葡萄酒质量分析(数据探索) 数据集:winemag-data_first150k.csv 先来导入数据 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import statsmodels.api as sm …

区块链 - 区块链基础知识:交易哈希链

区块链 - 区块链基础知识:深入了解交易哈希链 本文的主题是执行有关交易哈希链、 交易池的角色以及 一个最长的区块链如何永远占据主导。 讨论的细节包括以下内容: 事务哈希链的实现细节 交易池的角色 为什么需要共识算法 PoW vs PoS为什么最长的区块…

2018世界杯热点运营活动案例剖析

一、产品与活动概况 此次选取的产品除了本品同程艺龙(微信火车票机票)外,还包括全民应用支付宝和美团。其中本品世界杯主题的运营活动是“支持你的主队-赢球衣”,支付宝的是“猜世界杯-赢蚂蚁积分”,美团的是“燃烧看球-竞猜赢百万大奖”。 1. 同程艺龙:“支持你的主队…

翼次元空间资讯:区块链互联网酒业“心直酒快”有动作

本文由BitCOO、4COO全球运营官社区网络中国区节点与TokenRiseValueBoost | Chain产业链、FUND、Value与BrandFin品牌价值燃焕力中心、FintechX金融科技发展中心、孵化器WiTx链智星云 翼次元空间 Ai&Hi_AiHi/AiHiX研究中心授权发布 —— 由FinRise奋睿资本投资、翼次元空间孵…

黄铭钧:院长创业与酒

采访 | Rosalie 录音整理 | 储鑫垚 作者 | 朱芳文、刘韧 来源 | 链英雄 黄铭钧的自画像 “仗义?什么仗义?” “像乔峰?不可能。” 新加坡科学院院士,新国大计算机学院前院长、世界顶级数据库专家黄铭钧( Beng Chin Ooi…

解密小米生态链:从构建到定义产品

1990年的雷军 互联网界有这样一种共识:十亿美元做产品,百亿美元做平台,千亿美元做生态。 纵观当前中国互联网企业,真正能够称得上形成生态的企业不过ATM三家而已,这也是为什么我相信小米值1000亿美金。 每一波互联网…

链读推荐:从瓷砖到生成式 NFT

Erick Calderon,又名“Snowfro”,一年前作为NFT生成艺术平台Art Blocks的创建者一举成名。但他的加密之旅是一个迂回的过程。 在与父亲一起创立的瓷砖公司工作了近十年后,Calderon在2013年第一次从他的兄弟那里听说了比特币。开车&#xff0…