1、概述:流主要分为字节流和字符流两种。和底层设备打交道的流永远都是字节流,因为底层设备接收的都是二进制的01代码。在java中字节流继承于InputStream和OutputStream,字符流继承于InputStreamReader和OutputStreamWriter
2、根据Java中流的结构,画出一下类结构图(部分)
3、举例应用
以下代码主要实现了输入流和输出流的部分应用,代码如下
package cyxl.io.test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class IOTest {
public static void main(String[] args) {
write("iotest.txt",1);
read("iotest.txt",3);
}
public static void write(String filename,int type)
{
String str="new line\n";
try
{
if(type==1)
{
FileOutputStream fos=new FileOutputStream(filename,true);
fos.write(str.getBytes("GB2312"));
fos.close();
}
else if(type==2)
{
FileWriter fw=new FileWriter(filename,true);
fw.write(str);
fw.close();
}
else if(type==3)
{
PrintWriter pw=new PrintWriter(filename);
pw.write(str);
pw.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
public static void read(String filename,int type)
{
try
{
if(type==1)
{
FileInputStream fis=new FileInputStream(filename);
byte[] buf=new byte[1024];
int len=fis.read(buf);
String str=new String(buf,0,len);
System.out.print(str);
}
else if(type==2)
{
FileReader fr=new FileReader(filename);
char[] buf=new char[1024];
int len=fr.read(buf);
String str=new String(buf,0,len);
System.out.print(str);
}
else if(type==3)
{
BufferedReader br=new BufferedReader(
new InputStreamReader(
new FileInputStream(filename)
)
);
String str=null;
while((str=br.readLine())!=null)
{
System.out.println(str);
}
br.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
5、总结,流相关的类都在java.io包中。应注意的问题有
(1)、注意流的释放,否则很可能导致内存溢出等现象,造成内存资源浪费
(2)、注意流的并发性(JDK中默认添加了synchronized)
分享到:
相关推荐
04 JBPM工作流开发指南 .pdf 05 MySQL高性能书籍_第3版(中文).pdf 06 MySQL技术内幕 InnoDB存储引擎 第2版.pdf 07 Practical.API.Design.Confessions.of.a.Java.Framework.Architect.pdf 08 陈皓-Cloud Native 云...
4.2.3 流对象和IStream接口 4.2.4 结构化存储示例——例程StructStore 4.3 永久对象 4.3.1 永久接口 4.3.2 永久对象编程——例程PersistText 4.3.3 永久对象客户编程——例程PersistClient 4.4 命名与绑定技术 4.4.1...
源代码——提供了一套完整、经过良好注释的Java源代码,实现了J2EE工作流系统项目的全部功能。代码结构清晰,逻辑严谨,是学习Java编程和项目实践的优秀材料。 毕业论文——包含了一篇探讨J2EE工作流系统项目背景、...
4.1.1 流——Java I/O的基础 72 4.1.2 Java I/O库 72 4.2 练习 74 4.2.1 数据传送的通道 74 4.2.2 管道的一端 76 4.2.3 文件处理 78 4.2.4 基于对象的读写 80 4.2.5 NIO 85 4.3 小结 89 第5章 如何走得更稳...
4.1.1 流——Java I/O的基础 72 4.1.2 Java I/O库 72 4.2 练习 74 4.2.1 数据传送的通道 74 4.2.2 管道的一端 76 4.2.3 文件处理 78 4.2.4 基于对象的读写 80 4.2.5 NIO 85 4.3 小结 89 第5章 如何走得更稳...
Java是面向对象的、支持多线程的解释型网络编程语言。它是目前Internet最流行的编程语言之一,具有高度的安全性、可移植性和代码可重用性。
《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。...
4.1.1 流——Java I/O的基础 72 4.1.2 Java I/O库 72 4.2 练习 74 4.2.1 数据传送的通道 74 4.2.2 管道的一端 76 4.2.3 文件处理 78 4.2.4 基于对象的读写 80 4.2.5 NIO 85 4.3 小结 89 第5章 如何走得更稳...
│ │ 9.JAVA并发编程之多线程并发同步业务场景与解决方案.wmv │ │ │ ├─10.微服务架构之Spring Cloud Eureka 场景分析与实战 │ │ 10.微服务架构之Spring Cloud Eureka 场景分析与实战.wmv │ │ │ ├─11....
《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。
1.4.1 基本功训练1——更换java_home环境变量 16 1.4.2 基本功训练2——提取path变量值创建新环境变量 17 1.4.3 基本功训练3——输出字符表情 17 1.4.4 基本功训练4——输出“*”字符组成的三角形 18 1.5 情景...
本课程是以Java语言来讲授程序设计的入门知识,而非具体教授Java语言,关于Java语言的全面知识,还需要学习本课程的后续课程——“Java语言程序设计进阶”。 程序设计是实践性很强的课程,该课程的学习有其自身的...
分析软件外包业主流开发技术——java技术在高校教学中的诸多不足,结合校企合作模式"121工程"模式,从授课内容、教材体系、实习实训、评估体系以及教辅等环节论述java课程的教学改革和实践。
《解密搜索引擎技术实战——Lucene&Java;精华版(第3版)》是猎兔搜索开发团队的软件研发和教学实践的经验汇总。《解密搜索引擎技术实战——Lucene&Java;精华版(第3版)》总结搜索引擎相关理论与实际解决方案,并给...
大家好,又见面了。 在我前面的文章《 吃透JAVA的Stream流操作,多年实践总结》中呢,对Stream的整体情况进行了细致全面的讲解,也大概介绍了下结果收集器Collectors的常见用法 ——
第一篇介绍工作流管理技术的概念、起源和发展历程,开源工作流选型,以及jBPM——这个迄今为止最成功的Java开源工作流项目的“前世今生”。此外,本篇还可以帮助读者快速上手jBPM4、使用jBPM4开发企业流程应用,包括...
随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等)。也可以与其他EJB...
随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等)。也可以与其他EJB...
随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等)。也可以与其他EJB...
随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等)。也可以与其他EJB...