java输入输出PPT课件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
16
Scanner
Jdk 5 Java.util.Scanner 可以直接封装System.in 提供函数直接获得输入数据
.
17
命令行参数(向主函数输入)
Java Application 使用命令行来启动执行,命令行参 数可以向主函数传递参数。
▪ 在启动Java应用程序时可以一次性地向应用程序 中传递0~多个参数----命令行参数
java.io package
Java的输入输出
.
1
JAVA的输入/输出
程序经常需要从外部获取数据或者向外部输出数据。
位置:磁盘、网络、内存、另一个程序
形式:对象、字符、文本文件、声音、图形
Java中,输入与输出(I/O)是通过流进行的。它的特 点是数据的发送和获取都是沿数据顺序进行的。
流模型建立在从某个数据源到数据池的数据传输基础 上(from source to sink),也就是说把不同的输入/输出 源(键盘,文件,网络连接)等抽象表示为“流”。
举例:AppNumInOut.java
DataInOut.java
.
15
桥梁类
桥梁:InputStreamReader类和 OutputStreamWriter类
InputStream InputStreamReader Reader
OutputStream OutputStreamWriter Writer
int read()
int read(char[] cbuf)
int read(char[] cbuf, int offset, int length)
void write(int c)
void write(char[] cbuf)
void write(char[] cbuf, int offset, int length)
传输未经处理数据
可以从/向一个特定的地方(节点)读写数据,例 如磁盘或者一块内存。
处理流(processing stream):
传输经处理数据
是对一个已存在的流的连接和封装,通过所封 装的流的功能调用实现数据读/写功能
二者的区分大致可以从构造器参数中或类名 称中看出来。
.
10
常见节点流列表
void write(int c) void write(byte[] buffer) void write(byte[] buffer, int offset, int length)
.
4wenku.baidu.com
Reader & Writer
Reader和Writer类是一切字符流的超类。子类 命名常为XxxReader,XxxWriter。以下为二类 的主要API方法:
出length-1,会有异常。.
18
1 public class TestCommandLine {
2 public static void main(String[] args) {
3 for ( int i = 0; i < args.length; i++ ) {
4
System.out.println("args[" + i + "] = " + args[i]);
.
11
常见处理流列表
.
12
I/O链
在java中,往往并不是用一个单一的类来创 建流对象,通过叠加多个对象提供所期望 的功能——创建一个目的单一的结果流, 却需要创建多个流的对象。
输出流与输入流之间不能建立连接。
.
13
I/O Stream Chaining
.
14
I/O链
直接与数据源或者数据目的连接的流一般没有缓冲区,可 以串联到另一流的流一般有缓冲区,比如 BufferedOutputStream。
5}
6}
7}
//运行程序TestCommandLine.java
java TestCommandLine lisa "bily" "Mr Brown"
//输出结果:
args[0] = lisa
args[1] = bily
args[2] = Mr Brown
如果流带有缓冲区,数据不会直接到达通道另一端,会暂 时保存在缓存区当中,当数据超过缓冲区,才会到达通道 另一端。或者使用flush()方法,强迫数据通过流通道。
流的串联是堆栈方式的,显示地调用栈顶流的flush()方法, 程序会依次调用所有串联流的flush()方法。调用close()方 法关闭流,显示地关闭栈顶流即可。对于输出流,close() 方法会自动调用flush()方法。
▪ 命令行参数使用格式:
java ClassName lisa "bily" "Mr Brown"
▪ 命令行参数被系统以String数组的方式传递给应用 程序中的main方法,由参数args接收
public static void main(String[] args)
args的长度永远等于命令行的参数的数量,如果超
void write(String s)
void write(String s, int offset, int length)
.
5
InputStream类层次
.
6
OutputStream类层次
.
7
Reader类层次
.
8
Writer类层次
.
9
节点流和处理流
节点流(node stream):
.
3
InputStream & OutputStream
字节输入流InputStream和字节输出流 OutputStream是一切字节流的超类。大部分 子类的命名是XxxInputStream 和 XxxOutputStream ,例如FileInputStream。
它的最重要的二个方法:
int read()//返回的有效数据为byte int read(byte[] buffer) int read(byte[] buffer, int offset, int length)
两类基本的流:
▪ 输出流,只能向其写出数据,而不能从中读取数据。
▪ 输入流,只能从中读取数据,而不能向其写出数据
.
2
流编程基础
按流的数据单位大小分字符流和字节流。
字节流(8位byte流),主要来传输二进制 数据:如声音、图像、对象
字符流(16位char),可用来处理Unicode
举例:ReadFile1.java
相关文档
最新文档