java 标准Io流

问题描述

我想问下,为什么java里面要有标准IO流,有了字节流和字符流,不就可以了吗。为什么啊,我晕。 问题补充:blessed24 写道

解决方案

标准IO指计算机的的输入设备和输出设备,搞这些的吧,为了兼容不同系统,不同物理设备的输入与输出!
解决方案二:
引用是不是说,只有标准Io实现了跨平台,其他的流都不是跨平台的?标准IO 一般所有的操作系统都是一样的。。。windows要遵循,linux也一样吧。。。。
解决方案三:
引用inpublic static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。 outpublic static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 引用errpublic static final PrintStream err“标准”错误输出流。此流已打开并准备接受输出数据。 通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标,也应该立刻引起用户注意的其他信息。
解决方案四:
DataOutputStream本来就是用来写二进制数据的,你直接打开test.txt看到的是乱码,你用DataInputStream按你写的顺序读进来看就对了。也就是说DataOutputStream是与DataInputStream对应的。DataOutputStream,对各个基本数据类型以及String 对象进行格式化,并将其置入一个数据“流”中,以便任何机器上的DataInputStream 都能正常地读取它们。若想进行一些真正的格式化输出,比如输出到控制台,请使用PrintStream。利用它可以打印出所有基本数据类型以及String 对象,并可采用一种易于查看的格式。这与DataOutputStream 正好相反,后者的目标是将那些数据置入一个数据流中,以便DataInputStream 能够方便地重新构造它们。System.out 静态对象是一个PrintStream。PrintStream 内两个重要的方法是print()和println()。它们已进行了覆盖处理,可打印出所有数据类型。
解决方案五:
引用为什么java中有标准输入输出流这个概念?它存在的原因(意义)是什么?标准输入输出流是一种标准,不单单java有,C C++都有标准输入输出流,只不过java语言设计也要符合这种标准设计。。。。。这个概念不是java创造出来的
解决方案六:
引用但是还是像我最初问的,为什么java中有标准输入输出流这个概念?它存在的原因(意义)是什么?无论外层怎么封装,只是在简化,在提高效率,在增加样式形式,而最终都要使用标准的IO进行IO的读写操作,因为最终要通过IO的形式写入硬盘,不管什么语言什么方式,对磁盘访问的方式底层是一致的。
解决方案七:
PrintStream可以自动进行字符转换的动作,可以将基本数据类型的数据格式化成字符串输出,默认会使用操作系统的编码来处理对应的字符转换动作。当然你也可以使用PrintStream(OutputStream out, boolean autoFlush, String encoding)这个构造函数来制定你需要的编码。DataOutputStream 是将数据,无论什么类型,都是通过二进制形式存储起来。虽然同为字节流,这只能证明读取和写入的时候通过一个一个字节来分,但是写入文件时使用什么形式是根据他们本身来定义的。 DataOutputStream写入一个字节时,使用01 的形式写入。 PrintStream将一个字节 根据当前默认的字符编码写入到文件,比如 a 字符是一个两个字节,它写入之前先解析成a来写入文件,并不是一下子只写一个字节。
解决方案八:
java IO流 字节流与字符流比较,区别首先看字节流: BufferedInputStream bis = new BufferedInputStream(new FileInputStream("d://bat.txt")); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d://batbat.txt")); int b = 0; while((b = bis.read()) != -1){ bos.write(b); } System.out.println("文件写入成功"); bis.close(); bos.close();再来看字符流: BufferedReader br = new BufferedReader(new FileReader("d://bat.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("d://batbat.txt")); String str = null; while((str=br.readLine())!= null){ bw.write(str); bw.newLine(); //读取完一行换行 } System.out.println("字符流文件写入成功"); br.close(); bw.close();io流中的字节流,就是传输数据的时候,一个一个字节的传输,字符流,就是以一个字符来传输。我们知道字符的长度,是字节长度的两倍。而且中文是用字符来表示的,这时候把中文这种一个字符表示的数据,用字节,分成两次来传输就会出现问题,常见的是中文显示为问号。编程时常是 用包装后的 bufferedReader 和 BufferedWriter,和 PrinterWriter因为带有缓冲区,可以减少硬盘读写次数,保护硬盘
解决方案:
Java流包括字节流和字符流,字节流通过IO设备以字节数据的方式读入,而字符流则是通过字节流读入数据转化成字符“流”的形式由用户驱使。 流可以通过包装进行功能上的扩充,比如说BufferedStream,可以缓冲流,提高读取的性能,其实在Java中都是以这种操作IO的。 但是我们不能把BufferedStream当成是实际可用的流,其实它们必须包装一个代表真实的IO设备的流才能操作,比如说System.in和System.out,或者是数组和字符串(另一种包装的流)。比如说InputStream可以这样用:InputStream in = new BufferedInputStream(new BufferedInputStream(System.in));而字符流呢? 其实字符流没有实际的形式,只能是通过包装一些特别的输入流才能进行字符操作,比如说包装字节流InputStream:Reader reader = new InputStreamReader(System.in);再比如说包装字符数组:char[] in = new char[1024];Reader reader = new CharArrayReader(in);了解这些后,就能明白流的操作规律了。
解决方案:
这是同个概念啊,大哥
解决方案:
=。=概以为标准流就是字节流和字符流。。。。或者再加上System.in System.out System.err
解决方案:
标准IO流不就是包括字节流和字符流吗?概念没搞清楚吧

时间: 2024-10-01 17:55:32

java 标准Io流的相关文章

Java中IO流缓冲区的装饰模式的体现

一.Java中IO流缓冲区 import java.io.*; public class BufferedTest {public static void copy1(){InputStream is = null;OutputStream os = null;try{is = new FileInputStream("c:\\xy1.jpg");os = new FileOutputStream("d:\\xy2.jpg");int len = 0;byte[]

Java基于IO流读取文件的方法_java

本文实例讲述了Java基于IO流读取文件的方法.分享给大家供大家参考,具体如下: public static void readFile(){ String pathString = TEST.class.getResource("/simu").getFile(); try { pathString = URLDecoder.decode(pathString, "utf-8"); } catch (UnsupportedEncodingException e1)

java的IO流的典型应用

尽管库内存在大量IO流类,可通过多种不同的方式组合到一起,但实际上只有几种方式才会经常用到.然而,必须小心在意才能得到正确的组合.下面这个相当长的例子展示了典型IO配置的创建与使用,可在写自己的代码时将其作为一个参考使用.注意每个配置都以一个注释形式的编号起头,并提供了适当的解释信息.   //: IOStreamDemo.java // Typical IO Stream Configurations import java.io.*; import com.bruceeckel.tools.

Java中IO流,输入输出流概述与总结

总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类: 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类. [首先需要明白的是:流是干什么的???(为了永久性的保存数据)   根据数据流向的不同分为输入流和输出流:   根据处理数据类型的不同分为字符流和字

Java中IO流知识点总结

一.流的分类 1.按功能分 读取流:InputStream Reader 写出流:OutPutStream Writer 2.按流的类型分类 字节流:InputStream OutputStream 字符流:Reader Writer 二.流功能分析 读取流是从输入设备或数据对象中读取数据到程序,用程序进行处理读入的数据,写出流是把程序处理的数据输出到 输出设备上比如硬盘和控制台. 字节流读取和写入的数据单位是字节,可以读取和写入任何类型的数据.字符流读取跟写入的数据单位是字符,只能 读取和 写

Java利用IO流复制照片完整示例和详细分析

import java.io.FileInputStream; import java.io.FileOutputStream; /** * 该篇博客已经Deprecated,请参见I/O流的梳理和小结 * http://blog.csdn.net/lfdfhl/article/details/525761242 * 注意事项: * int java.io.FileInputStream.read(byte[] b) throws IOException * 方法的官方文档描述: * Reads

为什么java 用IO流读docx文件里的内容打印在控制台是乱码

问题描述 importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.Reader;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassLinx{publicstaticv

Java关于IO流的全面介绍_java

JDK提供的流继承了四大类:InputStream(字节输入流).OutputStream(字节输出流).Reader(字符输入流).Writer(字符输出流). 字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时.先去查指定的编码表,将查到的字符返回. 2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据. 只要是处理纯文本数据,就要

文件和 流-刚接触IO流和文件操作有许多不懂,请大神们来教教这些定义是什么意思

问题描述 刚接触IO流和文件操作有许多不懂,请大神们来教教这些定义是什么意思 File f1 = new File(dir, name);//什么意思,不懂啊. FileOutputStream out = new FileOutputStream(path);//什么意思,不懂啊. FileInputStream in = new FileInputStream(path);//什么意思,不懂啊. FileOutputStream fout = new FileOutputStream(xxx