有网友碰到这样的问题“JAVA IO流问题”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
第一段是输出流,就是由程序往外写数据,比如通过代码在硬盘上建立一个文本文档
第二段是输入流,跟第一段相反,从外部读入数据到程序。
与平台无关我个人理解就是不管外部是什么样的平台系统 xp linux or mac都可以通过这种代码读取和写数据
另外真实开发中都有封装好的类供你使用,个人写到stream的机会并不是很多。比如我就比较喜欢apache-commons io jar包中的 FileUtil类,大部分场景下够用了
解决方案2:
一个是输出到文件, 一个是从文件读取。
特点? 都是使用了缓存的方式来提高效率。
平台无关这个是java的特点,jdk已经实现了平台特征的屏蔽了,不需要应用程序考虑平台的特殊性。 这就叫做平台无关。
具体应用? 不太明白这个意思
解决方案3:
Java中的IO体系是一个装饰者模式。
第一组代码中,FileInputStream fos1是一个文件字节输出流。
BufferedOutputStream bos是一个具有缓冲功能的输出流,它包装了fos1,即为fos1添加了缓冲的功能(fos1本身没有缓冲的功能).
DataOutputStream dts是一个具有格式化输出的输出流,比如你可以通过dts.writeInt(int v)向流中输入一个Int(即四个字节),这是fos1和bos做不到的。dts包装了bos(相当于也包装了fos1),这样就为fos1添加了格式化输出的功能。
所谓的“装饰”就是这个意思,fos1具备了基本的功能,而bos和dts"装饰"了它,使它有了这些功能。
第二组代码是一样的意思,只是换成了输入流了。
平台无关的方式指的是在不同的操作系统下,该代码不用修改都可以运行。为什么这里要提到平台无关性呢,举个例子,linux下支持“零拷贝”技术而windows不支持,所以使用了“零拷贝”的代码只能在linux上跑。
上面的代码的应用主要就是读写文件。
小编还为您提供以下相关内容希望对您有帮助:
快速掌握java中的IO与NIO面试题
1. IO流简介Java的IO流分为字节流和字符流,按流向可分为输入流和输出流,按角色有节点流和处理流。节点流直接操作数据,处理流则在现有流上提供增强功能。IO流体系结构复杂,由40多个类组成,大部分源自4个抽象基类,通过后缀区分子类类型。2. Java IO原理I/O技术关乎数据在设备间的传输,Java通过...
javaIO流有那些异常,并注释是什么异常
import java.io.IOException; //导入IO异常包 import java.io.PushbackInputStream; //导入回退流包 / 回退流操作 / public class PushBackInputStreamDemo{ //类名 public static void main(String[] args) throws IOException{ //入口点 抛出IO异常 String str = "hello,rollenholt"; /...
java io流中涉及到了哪些设计模式
Java IO流中涉及到了装饰器模式、工厂模式、单例模式、适配器模式。1、装饰器模式 Java IO流使用了装饰器模式,通过继承和实现抽象类或接口来扩展一个流的功能。例如,BufferedInputStream和BufferedOutputStream都是装饰器类,它们为InputStream和OutputStream添加了缓冲功能。2、工厂模式 Java IO流使用工厂模...
IOException这是个什么异常 java
=。=|IO流异常。一般在读写数据的时候会出现这种问题。java内部数据的传输都是通过流,或者byte来进行传递的。就行一个文本文件。你可以通过in流写入到java中,同时也可以通过out流从java(计算机内存中)返还给具体的文件。
java IO流问题
其实关于java中的IO流,你只要去搞清楚四个类即可 InputStream 字节输入流,其它字节输入流都是InputStream 的子类 OutPutStream 字节输出流,其它字节输出流都是OutPutStream 的子类 Reader 字符输入流,其它字符流都是Reader 的子类 Writer 字符输出流,其它字符输出,都是Writer的子类 这四个IO 是超类,所有...
java的io流实现下载功能的缺点
单线程下载速度较慢,下载过程不支持断点续传。1、单线程下载速度较慢:使用Java的IO流实现下载功能时,是采用单线程下载的方式,因此在下载大文件时速度会比较慢。2、下载过程不支持断点续传:下载过程中出现网络故障或程序异常中断,需要重新开始下载整个文件,不能实现断点续传功能,浪费时间和网络资源。
关于JAVA IO流
io流主要也就分两大类:一、字节流、字符流 二、输入流、输出流最基本的也就是FileInputStream/FileOutputStream和InputStreamReader/OutputStreamReader掌握这两种,其他也确实类似以下是看到别人总结的一些关于io流的,希望对你有帮助Java IO的一般使用原则:一、按数据来源(去向)分类:1、是文件:File...
发现宝藏,这篇文章是我见过最详细讲解java流类图结构了。
Java流类图结构 1. 输入字节流 InputStream**是所有输入字节流的父类,它是一个抽象类。**ByteArrayInputStream**、**StringBufferInputStream**、**FileInputStream**分别从字节数组、字符串缓冲区和本地文件读取数据。**PipedInputStream**从共享管道读取数据,与Piped相关的知识将在后续文章中详细介绍...
java:IO流的操作,,byte数组的大小会影响写入速度么?
理论上讲会。每次文件读写是以簇为单位,每簇都要消耗时间,如果byte数大于一簇,肯定要多花时间。 不过现在电脑最小的簇也是4K,你的这两个对象没有差别。如果你的io流是针对网络,那么就不是簇,而是一个包的大小。有些包的载量比1K小,可能会有些差别。不过一般来说 10 和1024的差别,人是...
Java中简单的Io流的文件copy报错
JAVA是很成熟的编程语言了,你程序中出了什么错,99%的问题都可以从异常信息中找到原因的。你自己试了很多方式去解决问题,但是并没有看异常信息。异常信息中已经很明确的指出了 java.io.FileNotFoundException: D:\taohui.txt (系统找不到指定的文件。)就是的电脑的D盘根目录下没有taohui.txt这个...