Java  输入/输出   反射

输入输出和反射

一、数据流的基本概念

流一般分为

(

Input

Stream

)

和输出流

(

Output

Stream

)

两类,但这种划分并不是绝对的。比如一个文件,当向其中写数

据时,它就是一个输出流;当从其中读取数据时,它就是一个输

入流。当然,键盘只是一个数人流,而屏幕则只是一个输出流。

java

的标准数据流:

标准输入输出指在字符方式下

(如

DOS

)

,

程序与系统进行交互的方式,分为三种:

标准输入

studin,

对象是键盘。

标准输出

stdout,

对象是屏幕。

标准错误输出

stderr,

对象也是屏幕。

二、

java.io

包中的数据流和文件类

字节流:从

InputStream

和

OutputStream

派生出来的一系列

类。这流以字节

(byte)

为基本处理单位。

InputStream

、

OutputStream

FileInputStream

、

FileOutputStream

PipedInputStream

、

PipedOutputStream

ByteArrayInputStream

、

ByteArrayOutputStream

FilterInputStream

、

FilterOutputStream

DataInputStream

、

DataOutputStream

BufferedInputStream

、

BufferedOutputStream

字符流:

从

Reader

和

Writer

派生出的一系列类,

这类流以

16位的Unicode

码表示的字符为基本处理单位。

Reader

、

Writer

InputStreamReader

、

OutputStreamWriter

FileReader

、

FileWriter

CharArrayReader

、

CharArrayWriter

PipedReader

、

PipedWriter

FilterReader

、

FilterWriter

BufferedReader

、

BufferedWriter

StringReader

、

StringWriter

三、字节流方法

InputStream

和

OutputStream

read()

:从流中读入数据

skip()

:跳过流中若干字节数

available()

:返回流中可用字节数

mark()

:在流中标记一个位置

reset()

:返回标记过得位置

markSupport()

:是否支持标记和复位操作

close()

:关闭流

int

read()

:

从输入流中读一个字节,形成一个

0

~

255

之间

的整数返回(是一个抽象方法)

。

int read(byte b[]) :

读多个字节到数组中。

int read(byte b[], int off, int len)

:从输入流中读取长

度为

len

的数据,写入数组

b

中从索引

off

    • 开始的位置,并返回读

取得字节数。

write(int b) :

将一个整数输出到流中(只输出低位字节,

抽象)

write(byte b[]) :

将字节数组中的数据输出到流中

write(byte b[], int off, int len) :

将数组

b

中从

off

指

定的位置开始,长度为

len

的数据输出到流中

flush()

:刷空输出流,并将缓冲区中的数据强制送出

close()

:关闭流

注:

进行

I/O

操作时可能会产生

I/O

例外,

属于非运行时例外,

应

该

在

程

序

中

处

理

。

如

:

型

FileNotFoundException,

EOFException, IOException

四、文件操作类的方法

File

类

File

类声明如下:

public

class

File

ectends

Object

implements

Serializable,Comparable

构造方法:

public File(String pathname)

public File(File patent,String child)

public File(String patent,String child)

文件名的处理

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Java 输入/输出 反射的更多相关文章

  1. Java输入/输出教程

    Java输入/输出(I/O)处理从源读取数据并将数据写入目标.通常,读取存储在文件中的数据或使用I/O将数据写入到文件中. java.io和java.nio包中包含处理输入/输出的Java类.java ...

  2. Java 输入/输出——处理流(RandomAccessFile)

    RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据.与普通的输入/输出流不同的是,Ra ...

  3. Java 输入/输出——处理流(BufferedStream、PrintStream、转换流、推回输入流)

    关于使用处理流的优势,归纳起来就是两点:(1)对于开发人员来说,使用处理流进行输入/输出操作更简单:(2)使用处理流执行效率更高. 1.BufferedInputStream/BufferedOutp ...

  4. Java 输入/输出——Java虚拟机读写其它进程的数据

    使用 Runtime对象的exec()方法可以运行平台上的其它程序,该方法产生一个Process对象,Process对象代表由该Java程序启动的子进程.Process类提供了如下三个方法,用于让程序 ...

  5. Java 输入/输出——重定向标准输入/输出

    在System类中提供了如下三个重定向标准输入/输出方法. static void setErr​(PrintStream err) Reassigns the "standard" ...

  6. Java 输入/输出——字节流和字符流

    1.流的分类 (1)输入流和输出流(划分输入/输出流时是从程序运行所在内存的角度来考虑的) 输入流:只能从中读取数据,而不能向其写入数据. 输出流:只能向其写入数据,而不能从中读取数据. 输入流主要由 ...

  7. Java 输入/输出——File类

    File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成.值得指出的是,不管是文件还是目录都是使用File来操作的,File能新建 ...

  8. JAVA输入/输出系统中的其他流学习笔记

    一.字节数组流 字节数组流类能够操作内存中的字节数组,它的数据是一个字节数组.字节数组流类本身适配器设计模式,它把字节数组类型转为流类型使得程序能够对字节数组进行读写操作. 1.ByteArrayIn ...

  9. Java 输入/输出——处理流(ObjectIO)

    Object流:直接将Object流写入或读出. TestObjectIO.java transient关键字(英文名:透明的,可以用来修饰成员变量(实例变量),transient修饰的成员变量(实例 ...

随机推荐

  1. 彻底搞清楚python字符编码

    在讨论python编码之前,我先了解了几种编码的由来. 一.编码类型 1.ascci码 ascci码由美国人发明,用1个字节(byte)存储英文和字符,前期用了128个,后来新加了其他欧洲国家的符号, ...

  2. linux分区满了,如何进行扩容

    转自:https://blog.csdn.net/valage/article/details/73332147 图片中可以看到挂载点“/”的利用率移到100%,空间不够,所以要对其进行分区. 1.  ...

  3. monkey测试入门1

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

  4. Centos 7 安装Zabbix

    一.环境准备与说明: 1.zabbix server 版本:3.4.12 ,https://www.zabbix.com/download 2.zabbix agent版本:3.4.14,https: ...

  5. Hyperledger Fabric 账本结构解析

    前言 现在很多人都在从事区块链方面的研究,作者也一直在基于Hyperledger Fabric做一些开发工作.为了方便后来人更快的入门,本着“开源”的精神,在本文中向大家讲解一下Hyperledger ...

  6. 基于C#的机器学习--惩罚与奖励-强化学习

    强化学习概况 正如在前面所提到的,强化学习是指一种计算机以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使程序获得最大的奖赏,强化学习不同于连督学习,区别主要表现在强化信号上,强 ...

  7. chage命令详解

    基础命令学习目录首页 原文链接:https://www.jb51.net/article/78693.htm linux chage命令简介: chage命令用于密码实效管理,该是用来修改帐号和密码的 ...

  8. 小米6x抓包小程序https请求

    1. charles安装证书,手机设置代理等这里不多讲了, 请进入下面链接查看详细 https://blog.csdn.net/manypeng/article/details/79475870 2. ...

  9. win10浏览器访问vmware中ubuntu开启的某个服务端口出现的问题

    问题描述 1. win10系统中浏览器能正常访问  ubuntu中nginx服务器的80端口, 但是不能访问8082 问题原因 ubuntu 防火墙默认没有启用 8082端口, 需要开启这个端口号 解 ...

  10. 互评Beta版本(Hello World!——SkyHunter)

    1 基于NABCD评论作品,及改进建议 SkyHunter这款游戏我很喜欢,小时候总玩飞机类的游戏,这款游戏我上课的时候试玩了,在我电脑上运行是很好玩的,音乐震撼,画面玄幻,富有金属音乐的味道,游戏内 ...