第二十二章输入/输出
2011年04月03日
输入/输出(I/O)是每一项计算机语言,必须有的东西。不让人输入数据的话,计算机怎么处理数据呢?在java语言中,I/O的方式是流的方式。流(stream)这是个学习java输入输出的最基本的概念。流是字节从源到目的的有序序列。一方面是字节,一方面是有序的。流描述的是一个过程,顺序严格。一个需要键盘输入的程序可以用流来做到这一点。两种基本的流是:输入流和输出流。你可以从输入流读,但你不能对它写。要从输入流读取字节,必须有一个与这个流相关联的字符源。这些东西都放在java.io.*这个包里了。io是java的第一大包。在java.io 包中,有一些流是结点流,即它们可以从一个特定的地方读写,例如磁盘或者一块内存。其他流称作过滤流。一个过滤器输入流是用一个到已存在的输入流的连接创建的。此后,当你试图从过滤输入流对象读时,它向你提供来自另一个输入流对象的字符。
常见的几种流:
u 字节流:传字节的。以8位字节为单位进行读写,以InputStream与OutputStream为基础类
u 字符流: 传字符的。以16位字符为单位进行读写,以Reader与Writer为基础类
u 文件流: 传文件的。属于节点流,对文件读写,传输。里面的类很多。
u 序列化:传对象的。一个对象怎么读啊,只有变成二进制才可以读,这就是序列化。
实践:
//这是一个字节流的例子,以InputStream与OutputStream为基础类
importjava.io.*;
classByteArrayOutputStreamDemo {
public static void main(String args[]) throwsIOException {
ByteArrayOutputStream f = new ByteArrayOutputStream();
String s = "This should end up in the array";
byte buf[] = s.getBytes();
f.write(buf);
System.out.println("Buffer as a string");
System.out.println(f.toString());
System.out.println("Into array");
byte b[] = f.toByteArray();
for(inti=0; iread() at a time");
for (int i=0; i read(b[])");
byte b[] = new byte[n];
if (f.read(b) != n) {
System.err.println("couldn't read " + n + " bytes.");
}
System.out.println(new String(b, 0, n));
System.out.println("\nStill Available: " + (size = f.available()));
System.out.println("Skipping half of remaining bytes with skip()");
f.skip(size/2);
System.out.println("Still Available: " + f.available());
System.out.println("Reading " + n/2 + " into the end of array");
if (f.read(b, n/2, n/2) != n/2) {
System.err.println("couldn't read " + n/2 + " bytes.");
}
System.out.println(new String(b, 0, b.length));
System.out.println("\nStill Available: " + f.available());
f.close();
}
}
发表评论
-
exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
2012-01-20 09:07 681exp/imp 与 expdp/impdp 对比 及使用中的一 ... -
linux设备学习学习(一)
2012-01-20 09:07 601linux设备学习学习(一) 2 ... -
MMS-MTK-Obigo03c
2012-01-20 09:06 873MMS-MTK-Obigo03c 2011年02月2 ... -
DB2数据库常见问题汇总)
2012-01-20 09:06 1222DB2数据库常见问题汇总) ... -
IP组播技术介绍及实现例子
2012-01-20 09:06 516IP组播技术介绍及实现 ... -
"043d0df76"指令引用的"0x00000013"内存,该内存不能为"read"
2012-01-19 14:10 650"043d0df76"指令引 ... -
0x000001b8指令引用的0x000001b8内存该内存不能为read
2012-01-19 14:10 7210x000001b8指令引用的0x0000 ... -
引用的“0x00000000”内存,该内存不能为“read”或“written
2012-01-19 14:10 926引用的“0x00000000”内存,该内存不能为“read”或 ... -
各种文件后缀名与打开方式大全a-d
2012-01-19 14:10 830各种文件后缀名与打开方式大全a-d 2012年01月11日 ... -
右键菜单显示隐错文件和扩展名时报错
2012-01-19 14:10 641右键菜单显示隐错文件和扩展名时报错 2012年01月11日 ... -
Java IO 编程
2012-01-17 04:01 775Java IO 编程 2010年10月30日 Java ... -
第一节 计算机硬件组成
2012-01-17 04:01 683第一节 计算机硬件组成 ... -
2001-6-1
2012-01-17 04:01 6202001-6-1 2011年09月17日 1.假设某台式 ... -
Linux集群的安装与并行计算
2012-01-16 02:49 456Linux集群的安装与并行 ... -
HTTPS和HTTP的区别
2012-01-16 02:49 547HTTPS和HTTP的区别 2011年1 ... -
慢慢研究
2012-01-16 02:49 490慢慢研究 2011年12月24日 ... -
夜魅-----【索爱刷机必备。刷机控】
2012-01-16 02:49 445夜魅-----【索爱刷机必备。刷机控】 2011年12月31 ...
相关推荐
第十二章:异常处理 第十三章:MFC库与Windows程序开发概述 第二部分:实验指导 实验1:Visual C++ 6.0开发环境应用入门(2学时) 实验2:C++简单程序设计(4学时) 实验3:函数的应用(2学时) 实验4:类与...
第 21章 介绍 AWT:使用窗口、图形、文本第 22章 使用AWT控件、布局管理器和菜单第 23章图像 第 24章附加的包 第3部分Java软件开发技术 第 25章 Java Beans第 26章 Swing 第 27章从C++到Java第4部分 应用Java 第 28章...
第9章 输入输出流I/O基本原理22 October 2019输入输出流v为了实现对外设的统一管理,屏蔽不同外设的差异,Java用java.io包实现上层软件与
第一章 C++概述,第二章 数据类型、运算符与表达式,第三章 简单的输入输出,第四章 C++的流程控制语句,第五章 函数与编译预处理,第六章 数组 ,第七章 结构体、共同体和枚举类型 ,第八章 指针和引用,第九章 类...
第3章 对象、类型和值 第4章 计算 第5章 错误 第6章 编写一个程序 第7章 完成一个程序 第8章 函数相关的技术细节 第9章 类相关的技术细节 第二部分 输入和输出 第10章 输入/输出流 第11章 定制输入/输出 第12章 一...
第3章 对象、类型和值 第4章 计算 第5章 错误 第6章 编写一个程序 第7章 完成一个程序 第8章 函数相关的技术细节 第9章 类相关的技术细节 第二部分 输入和输出 第10章 输入/输出流 第11章 定制输入/输出 第12章 一...
第十二章输入输出流-java程序设计ppt讲义.ppt
本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。...第22章 理念和历史 第23章 文本处理 第24章 数值计算 第25章 嵌入式系统程序设计 第26章 测试 第27章 C语言
第一章 概述 第二章 存储器映射 第三章 系统配置 第四章 电源管理单元(PMU) 第五章 功率配置文件 第六章 中断控制器 第七章 IO口配置 第八章 管脚配置 第九章 通用输入/输出口 ...第二十二章 ARM Cortex-M0参考资料
第一章 linux网络编程概述 第二章 tcp/ip 第三章 套接字函数 第四章 tcp客户机服务器程序实例 ...第十二章 输入输出模型 第十三章 服务器模型 第十四章 服务器/客户端程序源码(qq模拟和网上选课系统)
Let-Us-C(第16版) ------- Yashavant Kanetkar着 C语言 主题 :- 章节 主题名称 第1章 入门 第2章 C指令 第3章 ...第十二章 ...控制台输入/输出 ...文件输入/输出 ...输入/输出中的更多问题 ...第22章 杂项功能
第一章 Java语言的基础知识 第二章 面向对象的编程 第三章 Java程序的执行 第四章 标识符、关键字与类型 ...第十二章 Java中的输入/输出 第十三章 线程 第十四章 Java中的网络编程 第十五章 Java与数据库(JDBC)
第22章 底层终端控制 第23章 ncurses入门 第24章 ncurses高级编程 第25章 X Windows编程 第26章 Athena、Motif和LessTif窗口部件 第27章 使用GTK+进行GUI编程 第28章 使用Qt进行GUI编程 第29章 使用OpenGL和Mesa进行...
第一章 C++入门 第二章 基本数据类型与输入输出 第三章 表达式和语句 第四章 过程化语句 第五章 函数 第六章 程序结构 ...第七章 数组 ...第八章 指针 ...第九章 引用 ...第二十章 模板 第二一章 异常处理
第22章 CGI:创建WEB计数器、来宾簿、电子邮件程序和安全脚本 第23章 CGI:创建多用户聊天、服务器推技术、COOKIE和游戏 第24章 CGI:创建购物车、数据库、站点搜索和文件上传 第25章 XML::DOM解析 第26章 XML...
预处理命令 第20章 XML文档 第21章 .NET类的路标 第22章 系统类 第23章 集合 第24章 输入/输出 第25章 反射 第26章 文本操作 第27章 正则表达式 第28章 线程 附录A C#关键字 附录B...
可以用超星阅读软件打开。...第22章 数据库介绍 第23章 活动数据对象:ADO.NET 第24章 Windows应用介绍 第25章 活动服务页:ASP.NET 第26章 Web服务 附录A C#关键字 附录B C#编译选项 附录C 正则表达式