- 浏览: 1508534 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
http://book.51cto.com/art/200812/101093.htm
(madp
InputStream:
int read(byte[] b)
从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b
中。
OutputStream:
void write(byte[] b)
将 b.length
个字节从指定的 byte 数组写入此输出流。
)
14.2.2 FileInputStream和FileOutputStream
java.io.FileInputStream是InputStream的子类。从开头File名称上就可以知道,FileInputStream与从指定的文件中读取数据至目的地有关。而java.io.FileOutputStream是OutputStream的子类,顾名思义,FileOutputStream主要与从来源地写入数据至指定的文件中有关。
当建立一个FileInputStream或FileOutputStream的实例时,必须指定文件位置及文件名称,实例被建立时文件的流就会开启;而不使用流时,必须关闭文件流,以释放与流相依的系统资源,完成文件读/写的动作。
FileInputStream可以使用read()方法一次读入一个字节,并以int类型返回,或者是使用read()方法时读入至一个byte数组,byte数组的元素有多少个,就读入多少个字节。在将整个文件读取完成或写入完毕的过程中,这么一个byte数组通常被当作缓冲区,因为这么一个byte数组通常扮演承接数据的中间角色。
范例14.5是使用FileInputStream与FileOutputStream的一个例子。程序可以复制文件,它会先从来源文件读取数据至一个byte数组中,然后再将byte数组的数据写入目的文件。
范例14.5 FileStreamDemo.java
package onlyfun.caterpillar;
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
byte[] buffer = new byte[1024];
// 来源文件
// available()可取得未读取的数据长度
while(true) {
// 关闭流
System.out.println("复制完成"); |
程序中示范了两个read()方法,一个方法可以读入指定长度的数据至数组,另一个方法一次可以读入一个字节。每次读取之后,读取的光标都会往前进,如果读不到数据则返回-1,使用available()方法获得还有多少字节可以读取。除了使用File来建立FileInputStream、FileOutputStream的实例之外,也可以直接使用字符串指定路径来建立。
// 来源文件
FileInputStream fileInputStream =
new FileInputStream(args[0]);
// 目的文件
FileOutputStream fileOutputStream =
new FileOutputStream(args[1]);
|
在不使用文件流时,记得使用close()方法自行关闭流,以释放与流相依的系统资源。一个执行的结果范例如下,它将FileDemo.java复制为FileDemo.txt:
java onlyfun.caterpillar.FileStreamDemo FileDemo.java FileDemo.txt
复制文件:1723字节
复制完成
|
FileOutputStream默认会以新建文件的方式来开启流。如果指定的文件名称已经存在,则原文件会被覆盖;如果想以附加的模式来写入文件,则可以在构建FileOutputStream实例时指定为附加模式。例如:
FileOutputStream fileOutputStream =
new FileOutputStream(args[1], true);
|
构建方法的第二个append参数如果设置为true,在开启流时如果文件不存在则会新建一个文件,如果文件存在就直接开启流,并将写入的数据附加至文件末端。
虽然我一向不喜欢使用过长的范例来作程序示范(也不喜欢看很长的范例),不过本章的范例与其他各章的比起来相对长了一些,我会在程序中多用注释解释程序的逻辑。因为解释输入/输出操作最好的方式,是呈现一个具实用性的范例,本章的范例除了练习的作用之外,日后需要某些输入/输出功能时,也可以来参考看看如何实现。
发表评论
-
ISO-8859_1统一编码 java
2011-08-19 11:07 2046Java中文问题一直困扰着很多初学者,如果了解了Java系统的 ... -
UTF-8 GBK UTF8 GB2312
2011-08-19 10:46 1938UTF-8:Unicode TransformationFor ... -
Properties 类读取配置文件
2011-08-17 22:37 14671、使用java.util.Properties类的load( ... -
Java编程之四大名著
2011-08-06 10:07 1475中文第四版 http://download.csdn.n ... -
JDK5.0 新特性
2011-07-28 20:02 13951.AutoBoxing 原来int是非 ... -
JDK6的新特性
2011-07-28 19:57 1794JDK6的新特性 JDK6的新特性之一_Desktop类和Sy ... -
线程同步
2011-07-25 11:34 1285作者 : buaawhl http://www.iteye.c ... -
ZipInputStream类
2011-07-22 11:33 18785《Java开发实战经典》第12章Java IO,Java ... -
String、StringBuffer和StringBuilder的区别
2011-07-14 15:04 1378String是不可变的,StringBuffer是可变的;St ... -
精通JAVA核心技术
2011-07-11 11:31 1299http://www.2cto.com/ebook/20100 ... -
Java多线程sleep(),join(),interrupt(),wait(),notify()
2011-07-06 22:51 4922浅析 Java Thread.join() 一、在研究j ... -
FileInputStream/FileOutputStream的应用
2011-07-06 15:06 1419这是一对继承于InputStream和OutputStream ... -
Java基础之理解JNI原理
2011-07-05 14:55 1322JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA ... -
面向对象和面向过程的区别
2011-07-04 09:52 1415面向过程就是分析出解 ... -
Java参数传值还是传引用
2011-07-03 20:52 3647参数是按值而不是按 ... -
JAVA排序汇总
2011-06-29 18:07 1521package com.softeem.jbs.lesson4 ... -
Java流操作,InputStream、OutputStream及子类FileInputStream、FileOutputStream;BufferedInpu
2011-06-27 18:09 19263Java将数据于目的地及来 ... -
线程综合文章
2011-06-27 10:48 1124http://lavasoft.blog.51cto.com/ ... -
由Java中的Set,List,Map引出的排序技巧
2011-06-24 14:18 2390一。关于概念: ... -
Date、String、Timestamp之间的转换
2011-03-20 16:59 2428public static Timestamp pars ...
相关推荐
这份“Java JDK 6学习笔记”涵盖了从基础到高级的各种主题,是Java初学者和进阶者的重要参考资料。以下是笔记中可能包含的一些关键知识点: 1. **安装与配置**:介绍如何在不同操作系统(如Windows、Linux和Mac OS...
**Java JDK 7学习笔记概述** Java JDK 7(Java Development Kit 7)是Java编程语言的一个重要版本,由Sun Microsystems(后被Oracle公司收购)开发,并于2011年7月28日正式发布。这个版本引入了一系列新特性、改进...
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份笔记以PPT的形式呈现,使得学习过程更加直观易懂,适合课堂教学或自我学习。...
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...
6. **输入/输出流**:Java的I/O流系统是处理数据输入和输出的关键,书中会介绍流的分类、层次结构,以及如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等类进行文件操作。 7. **多...
在"Java JDK 6学习笔记——ppt简体版"中,你将系统地了解到以下几个关键知识点: 1. **基础语法**:包括数据类型、变量、控制结构(如if、switch、for、while循环)、方法、类与对象等Java语言的基本元素。 2. **...
Java JDK 6学习笔记课件是由知名讲师林学良教授的一套系统性的Java编程教程,主要针对初学者和有一定基础的开发者,旨在帮助他们深入理解Java语言和JDK 6的相关特性。本教程覆盖了Java语言的基础语法、面向对象编程...
这个学习笔记将主要聚焦于Java的核心库和虚拟机实现,通过分析源代码,我们可以更清晰地了解Java的内部机制。 首先,Java JDK源码包含了Java语言的基础类库,如`java.lang`, `java.util`, `java.io`等包,这些包...
【Java学习笔记与JDK6】是针对初学者和进阶者的重要资源,由知名IT作者单兴华编写的“王者归来之良葛格”系列教程。本压缩包包含丰富的Java编程教学材料,旨在帮助用户深入理解JDK6版本中的核心概念和技术。以下是...
【Java学习笔记JDK6课件之十九】深入解析 在这一章节中,我们将探讨Java编程中的文本编辑器实现,以及产品生命周期的概念。这是一份新手入门的学习资料,非常适合初学者掌握Java SE(标准版)环境下的Swing库,以及...
6. **输入/输出流**:Java提供了强大的I/O流系统,支持文件读写、网络通信和数据序列化等操作,如FileInputStream和FileOutputStream用于文件操作,Socket和ServerSocket用于网络编程。 7. **多线程**:Java内置了...
Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...
5. **输入/输出流**:学习如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等进行文件操作。 6. **多线程**:掌握Thread类和Runnable接口,线程同步机制,如synchronized关键字、wait()...
开始学习Java,你需要安装Java Development Kit (JDK),它包含了编译器javac和解释器java等工具。还要配置好系统环境变量,如JAVA_HOME、PATH和CLASSPATH,以确保系统能找到Java的相关命令。 3. **基础语法**: -...
"Java学习笔记全部课件和源代码"是一个针对初学者的资源包,它包含了一系列关于Java编程的学习材料和实例代码,旨在帮助新手快速掌握Java语言的基础和实践应用。 在Java学习的初期,理解基础概念至关重要。这包括...
7. **输入/输出流**:Java的I/O流用于读写文件和网络数据,笔记可能涵盖了FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等基本流的使用。 8. **集合框架**:如ArrayList、LinkedList、...
6. **输入输出(I/O)**:包括System.in, System.out.println, 文件读写,流的概念,以及FileInputStream, FileOutputStream, BufferedReader, BufferedWriter等类的使用。 7. **多线程**:Java内置的Thread类,...
Java I/O流(如RandomAccessFile、FileInputStream、FileOutputStream)为程序读写文件提供了方法。Java还提供了对网络通信的支持,比如Socket编程。 Java中的线程是程序执行流的最小单位,提供并行计算的能力。...
良葛格老师的Java学习笔记是针对初学者的一份宝贵资料,旨在帮助他们快速掌握Java编程的基础,并深入理解关键概念。 笔记内容可能涵盖以下几个方面: 1. **Java基础知识**:包括Java的历史、特点,以及安装JDK...