1. 首先我们了解一下IO类的输入输出,IO(输入/输出)是比较抽象的,看不到明显的运行效果,但输入和输出是所有程序都必需的部分。 使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据、来自网络的数据)、 用户输入数据;使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中和 网络其他设备中。 Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入流、输出流两种IO流,每 种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而 字符流则以字符来处理输入、输出操作。除此之外Java的IO流使用了一种装饰器设计模式,它将IO流分 成底层节点流和上层处理流,其中节点流用于和底层的物理存储节点直接关联(不同的物理节点获取节 点流的方式可能存在一定的差异),但程序可以把不同的物理节点流包装成统一的处理流,从而允许程 序使用统一的输入、输出代码来读取不同的物理存储节点的资源。

    1. File类 File类是java.io包下代表与平台无关的文件和目录的类。在程序中操作文件和目录,都可以通过File 类来完成。需要注意的是,不管是文件还是目录都是使用File来操作的,File能新建、删除、重命名文件 和目录,但是File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
  2. 看一下在eclipse中的运用:

  1. Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/ 输出源(键盘、文件、网络连接等)抽象表述为“流”(stream),通过流的方式允许Java程序使用相同 的方式来访问不同的输入输出源。 stream是从起源(source)到接收(sink)的有序数据。 Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入输出功能。 一、流的分类 1.输入流和输出流 按照流的流向来分,可以分为输入流和输出流。输入、输出都是从程序运行所在内存的角度来划分 的。 输入流:只能从中读取数据,而不能向其写入数据。由InputStream和Reader作为基类 输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类 2.字节流和字符流 字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同。 字节流操作的数据单元是8位的字节,由InputStream和OutputStream作为基类。 字符流操作的数据单元是16位的字符,由 Reader和 Writer作为基类。 3.节点流和处理流按照流的角色来分,可以分为节点流和处理流。 节点流:可以从向一个特定的IO设备(如磁盘、网络)读/写数据的流。 处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能。
  2. 使用处理流的优势: 1. 对开发人员来说,使用处理流进行输入/输出操作更简单; 2. 使用处理流的执行效率更高。
  3. InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流。 OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流

  1. 字节流和字符流 字节流和字符流的操作方式几乎完全一样,区别只是操作的数据单元不同而已。字节流操作的数据单元 是字节,字符流操作的数据单元是字符。 一、InputStream和Reader InputStream和Reader是所有输入流的抽象基类,它们的方法是所有输入流都可使用的方法。

  2. 打印流 在整个IO包中,打印流是输出信息做方便的类,主要包含字节打印流(PrintStream)和字符打印流 (PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字 符串等等。 打印流只有输出没有输入。是 一种 处理流

  3. 格式字符 格式字符用以指定输出项的数据类型和输出格式。 d格式:用来输出十进制整数。有以下几种用法: %d:按整型数据的实际长度输出。 %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实 际位数输出。 %ld:输出长整型数据。 o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度 用“%mo”格式输出。 x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽 度用"%mx"格式输出。 c格式:输出一个字符。s格式:用来输出一个串。有几中用法 %s:例如:printf("%s", “CHINA”)输出"CHINA"字符串(不包括双引号)。 %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若 串长小于m,则左补空格。 %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。 %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n 值,即保证n个字符正常输出。 f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法: %f:不指定宽度,整数部分全部输出并输出6位小数。 %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

  4. 输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中 InputStreamReader将字节输入流转换成字符输入流, OutputStreamWriter将字节输出流转换成字符 输出流。

11.RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法 来访 问文件内容,它既可以读取文件内容,也可以向文件输出数据。RandomAccessFile支持“随机访问”的方 式,程序可以直接跳转到文件的任意地方来读写数据。 RandomAccessFile四种访问模式: “r”:以只读方式打开指定文件。如果试图对该RandomAccessFile执行写入方法,都将抛出 IOException 异常。 “rw”:以读、写方式打开指定文件。如果该文件尚不存在,则尝试创建该文件。 "rws”:以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容或元数据的每个更新 都同步写入到底层存储设备。 “rwd”: 以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容的每个更新都同步写入 到底层存储设备。 元数据是文件的附加属性,如文件大小、创建时间、所有者等信息。

ECLIPSE输入输出相关推荐

  1. eclipse用Java输入_Java基础教程——使用Eclipse快速编写Java输入输出代码

    Eclipse安装 IDE:Integrated Development Environment,集成开发环境.好比是全自动洗衣机. 此处使用[eclipse-jee-4.6-neon-3-win32 ...

  2. Hadoop实战(6)_搭建Apache Hadoop的Eclipse开发环境

    系列目录: Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境 Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式 Hadoop实战(3)_虚拟机搭建CDH的全分布模式 Had ...

  3. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  4. Windows8.1+Eclipse搭建Hadoop2.7.2本地模式开发环境

    下面介绍如何在Windows8.1上搭建hadoop2.7.2的本地模式开发环境,为后期做mapreduce的开发做准备. 在搭建开发环境之前,首先选择开发工具,就是大家都很熟悉的Eclipse(本人 ...

  5. Eclipse下搭建Hadoop开发环境,并运行第一个实例

    有同学无法正常运行程序,这里将Eclipse下Hadoop环境配置进行一下说明: 1.新建Map/Reduce工程 2.设置Hadoop Locaiton,第一次使用的话,点击大象,新建配置. 3.设 ...

  6. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  7. OpenCV之core 模块. 核心功能(2)基本绘图 随机数发生器绘制文字 离散傅立叶变换 输入输出XML和YAML文件 与 OpenCV 1 同时使用

    基本绘图 目的 本节你将学到: 如何用 Point 在图像中定义 2D 点 如何以及为何使用 Scalar 用OpenCV的函数 line 绘 直线 用OpenCV的函数 ellipse 绘 椭圆 用 ...

  8. Hadoop+eclipse运行MapReduce程序

    前面,我们已经通过eclipse下安装Hadoop的插件配置好了基于Hadoop+eclipse的MapReduce开发环境.现在,我们在这个Hadoop+eclipse环境下运行MapReduce程 ...

  9. eclipse python_【Python基础】Python基础语法

    编程与Python 1.什么是编程 人为安排计算机解决某个问题的方法和步骤. 2.编程的语言 机器语言:二进制代码表示的计算机能够直接识别和执行的一种机器指令的集合ADD代表运算符号"+&q ...

最新文章

  1. UVA 10714 - Ants
  2. RabbitMQ和Kafka到底怎么选?
  3. vs2019装了WDK后,编译其他vc工程,提示无法打开文件msvcprtd.lib
  4. esp8266烧写机智云固件方法
  5. 嵌入式linux 分区挂载,嵌入式linux系统的开发——文件系统的分区和挂载
  6. 蓝桥备赛第一周2021.1.11 递归 枚举 位运算
  7. mysql数据备份与恢复_MySQL数据备份与恢复
  8. oracle查对象创建时间,oracle:查询某个时间之后,指定用户,指定对象类型,并创建的表的个数...
  9. moment格式换时间_不一样的日期、时间转换(moment.js)
  10. Linux Tomcat日志查看实用命令
  11. how to add user into sudoers file?
  12. 弥合安全和开发间隙的四个关键点
  13. mysql批量执行sql文件
  14. matlab电磁场与微波技术仿真pdf,MATLAB电磁场与微波技术仿真
  15. Jmeter小程序压力测试案例
  16. t检验自由度的意义_统计学常用概念:T检验、F检验、卡方检验、P值、自由度...
  17. win7 64位纯净版系统下载
  18. GMX 命令分类列表
  19. java商城功能模块图_java网上图书商城(1)User模块
  20. 基于ZFAKA二次开发,添加PayJS支付渠道

热门文章

  1. 西安建筑科技大学计算机真题,2016年西安建筑科技大学计算机应用技术数据库复试笔试仿真模拟题...
  2. SDOI2019Round1游记
  3. JabRef新手入门学习记录
  4. 利用MongoDB进行地理坐标查询
  5. 短信验证码java_Java实现短信验证码
  6. Day15-集成学习-机器学习-案例二:蒸汽量预测(DataWhale)
  7. Android友盟微信分享失败,一闪而过
  8. java10 var关键字浅析
  9. vue3+DataV+Echarts搭建数据大屏模板(建议收藏)
  10. IDEA 2019.3.5启动异常