精华内容
下载资源
问答
  • 本文档涵盖了java标准输入输出,包含InputStream、OutputStream字节还有字符以及对文件的读写操作等
  • Java标准输入输出

    千次阅读 2019-06-14 15:22:11
    标准输入输出流 System类中的两个成员变量: public static final InputStream in “标准”输入流。 public static final PrintStream out “标准”输出流。 InputStream is = System.in; PrintStream ps = System....

    标准输入输出流

    System类中的两个成员变量:

    • public static final InputStream in “标准”输入流。
    • public static final PrintStream out “标准”输出流。
    • InputStream is = System.in;
    • PrintStream ps = System.out;
    // 这个输出语句其本质是IO流操作,把数据输出到控制台。
    	System.out.println("hello world");
    	// 获取标准输出流对象
    	PrintStream ps = System.out;
    	ps.println("hello world");
    	//注: ps.print();//这个方法不存在
    

    在这里插入图片描述
    PrintStream ps = System.out;
    OutputStream os = ps;
    OutputStream os = System.out; // 多态

    public class SystemOutDemo2 {
    public static void main(String[] args) throws IOException {
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    	bw.write("hello");
    	bw.newLine();	
    	bw.flush();
    	bw.close();	
    }
    }
    
    

    InputStream is = System.in;

    public class SystemInDemo {
    public static void main(String[] args) throws IOException {
    	// //获取标准输入流
    			// //我要一次获取一行行不行呢?
    			// //行。
    			// //怎么实现呢?
    			// //要想实现,首先你得知道一次读取一行数据的方法是哪个呢?
    			// //readLine()
    			// //而这个方法在哪个类中呢?
    			// //BufferedReader
    			// //所以,你这次应该创建BufferedReader的对象,但是底层还是的使用标准输入流
    			// // BufferedReader br = new BufferedReader(is);
    			// //按照我们的推想,现在应该可以了,但是却报错了
    			// //原因是:字符缓冲流只能针对字符流操作,而你现在是字节流,所以不能是用?
    			// //那么,我还就想使用了,请大家给我一个解决方案?
    			// //把字节流转换为字符流,然后在通过字符缓冲流操作
    			// InputStreamReader isr = new InputStreamReader(is);
    			// BufferedReader br= new BufferedReader(isr);
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	System.out.println("请输入一个字符串");
    	String line =br.readLine();
    	System.out.println(line);
    	System.out.println("请输入一个整数");
    	line = br.readLine();
    	int i = Integer.parseInt(line);
    	System.out.println(i);
    	
    	
    }
    }
    
    
    展开全文
  • java标准输入/输出

    千次阅读 2017-04-19 20:22:10
    大体了解了一些java中标准变量和...Java通过系统类System实现标准输入/输出的功能,定义了3个变量:in,out,和err.这3个Java中都定义为静态变量,可以直接通过System类进行调用。System.in表示标准输入

    原文转自:http://blog.csdn.net/jack_jyh/article/details/52388271



    大体了解了一些java中标准流变量和方法


    Java通过系统类System实现标准输入/输出的功能,定义了3个流变量:in,out,和err.这3个流在Java中都定义为静态变量,可以直接通过System类进行调用。System.in表示标准输入,通常指从键盘输入数据;System.out表示标准输出,通常指把数据输出到控制台或者屏幕;System.err表示标准错误输出,通常指把数据输出到控制台或者屏幕。

    1.简单标准输入 
    System.in作为字节输入流类InputStream的对象实现标准输入,通过read()方法从键盘接受数据。 
    int read() 
    int read(byte b[]) 
    int read(byte b[],int offset,int len)

    import java.io.IOException;
    public class StdInput{
        public static void main(String[] args) throws IOException 
        {
            System.out.println("input:");
            byte b[]=new byte[512];
            int count=System.in.read(b);
            System.out.println("Output");
            for(int i=0;i<count;i++)
            {
                System.out.print(b[i]+" ");
            }
            System.out.println();
            for(int i=0;i<count;i++)
            {
                System.out.print((byte)b[i]+" ");
            }
            System.out.println("count="+count);
        }
    }
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    结果 
    input: 
    abcd 
    Output 
    97 98 99 100 13 10 
    97 98 99 100 13 10 count=6

    分析:程序运行使,从键盘输入4个字符abcd并按Enter键,保存在缓冲区b中的元素个数count为6,Enter占用最后两个字节

    2.Scanner类与标准输入结合 
    在通常情况下需要从标准输入读取字符,整数,浮点数等具体类型的数据。System.in作为标准输入流,是InputStream类的一个对象,其read()方法的主要功能是读取字节和字节数组,不能直接得到需要的数据(如整型,浮点型)。此时,需要另外一个类java.util.Scanner的配合。可以利用Scanner类对标准输入流System.in的数据进行解析,得到需要的数据。

    3.标准输出 
    System.out作为打印流PrintStream的对象实现标准输出,其定义了print和println方法,支持将Java的任意基本类型作为参数。 
    public void print(int i); 
    public void println(int i); 
    JDK5.0后的版本对PrintStream类进行了扩充,支持数据的格式化输出,增加了printf()方法。 
    public PrintStream printf(String format,Object…args) 
    public PrintStream printf(Locale 1,String format,Object…args)





    展开全文
  • Java输入输出详解

    千次阅读 2019-01-08 20:32:54
    1 什么是IO? 1 Java的IO机制有IO和块IO两种,核心库 java.io是大多数面向数据的IO类的主要软件包;核心库 java.nio中采用的便是块IO。...JavaIO提供了读写数据的标准方法。在Java中任何数据源的对象都支持...

    1 什么是IO?

    • 1 Java的IO机制有流IO和块IO两种,核心库 java.io是大多数面向数据流的IO类的主要软件包;核心库 java.nio中采用的便是块IO。流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。
    • 2 流IO基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的流IO提供了读写数据的标准方法。在Java中任何数据源的对象都支持数据流的方式进行数据的读写。
    • 3 Java 流IO模型使用Decorator模式,按功能划分Stream,可以动态装配这些Stream,以便获得需要的功能。例如,需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。

    2 数据流的概念

    • 1 数据流是一串连续不断的数据的集合。流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流;当程序需要写入数据的时候,就会开启一个通向目的地的流。采用数据流的目的就是使得输出输入独立于设备。

       

      IO stream

    • 2 将数据从外存中读取到内存中的称为输入流。即输入流是将数据源(键盘、文件、网络…)中的数据读入到程序的通信通道。

      Input Stream

    • 3 将数据从内存写入外存中的称为输出流。即输出流是将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。

      Output Stream

    • 4 流序列中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。
    1. 字节流:数据流中最小的数据单元是字节
    2. 字符流:数据流中最小的数据单元是字符, 以Unicode编码,一个字符占用两个字节。
    • 5 流IO层次体系结构
      Java I/O主要包括如下几个层次,包含三个部分:
      1)流式部分即流IO的主体部分,如Input/OutputStrean类、Reader/Writer类和标准输入输出流等;
      2)非流式部分主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor类等;
      3)其他类--文件读取部分的与安全相关的类,如:SerializablePermission类、FileSystem类和Win32FileSystem类等。

    3 字节流

    3.1 输入字节流

    • 1 InputStream(二进制格式操作): 为字节输入流,它本身为一个抽象类,必须依靠其子类实现各种功能,此抽象类是表示字节输入流的所有类的超类。 继承自InputStream的流都是向程序中输入数据的,且数据单位为字节(8bit)。
    • 2 Inputstream类的常用子类
      1) FileInputStream把一个文件作为InputStream,实现对文件的读取操作
      2) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用
      3) StringBufferInputStream:把一个String对象作为InputStream
      4) PipedInputStream:实现了pipe的概念,主要在线程中使用
      5) SequenceInputStream:把多个InputStream合并为一个InputStream

    • 3 Inputstream类中的常用方法
      1) public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。若返回值=-1说明没有读取到任何字节读取工作结束。
      2) public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的。
      3) public int read(byte b[ ], int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。
      4) public int available( ):返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起,如果InputStream对象调用这个方法的话,它只会返回0,这个方法必须由继承InputStream类的子类对象调用才有用。
      5) public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数, 跳过一些字节来读取。
      6) public int close( ) :我们在使用完后,必须对我们打开的流进行关闭。

    3.2 输出字节流

    • 1 OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。
    • 2 Outputstream类的常用子类
    1. ByteArrayOutputStream:把信息存入内存中的一个缓冲区中
    2. FileOutputStream:把信息存入文件中
    3. PipedOutputStream:实现了pipe的概念,主要在线程中使用
    4. SequenceOutputStream:把多个OutStream合并为一个OutStream

       

    • 3 Outputstream类中的常用方法
      1)public void write(byte b[ ]):将参数b中的字节写到输出流。
      2)public void write(byte b[ ], int off, int len) :将参数b的从偏移量off开始的len个字节写到输出流。
      3)public abstract void write(int b) :先将int转换为byte类型,把低字节写入到输出流中。
      4)public void flush( ) : 将数据缓冲区中数据全部输出,并清空缓冲区。
      5)public void close( ) : 关闭输出流并释放与流相关的系统资源。

    4 字符流

    Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。

    4.1 输入字符流

    • 1 Reader抽象类,基于字符的输入操作。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
    • 2 常用子类
      1)FileReader :与FileInputStream对应
      2)CharArrayReader:与ByteArrayInputStream对应
      3)StringReader : 与StringBufferInputStream对应
      4)InputStreamReader 从输入流读取字节,在将它们转换成字符
      5)FilterReader: 允许过滤字符流
      6)BufferReader :接受Reader对象作为参数,并对其添加字符缓冲器,使用readline()方法可以读取一行。

    • 3 常用方法
      1)public int read() throws IOException; //读取一个字符,返回值为读取的字符
      2)public int read(char cbuf[]) throws IOException; /读取一系列字符到数组cbuf[]中,返回值为实际读取的字符的数量/
      3)public abstract int read(char cbuf[],int off,int len) throws IOException;
      /读取len个字符,从数组cbuf[]的下标off处开始存放,返回值为实际读取的字符数量,该方法必须由子类实现/

    4.2 输出字符流

    • 1 Writer(文件格式操作):抽象类,基于字符的输出操作。写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
    • 2 常用子类
      1)FileWrite: 与FileOutputStream对应,将字符类型数据写入文件,使用缺省字符编码和缓冲器大小。
      2)chararrayWrite:与ByteArrayOutputStream对应 ,将字符缓冲器用作输出。
      3)PrintWrite:生成格式化输出。
      4)FilterWriter:用于写入过滤字符流。
      5)PipedWriter:与PipedOutputStream对应。
      6)StringWriter:无与之对应的以字节为导向的stream。

    • 3 ** 常用方法**
      1)public void write(int c) throws IOException; //将整型值c的低16位写入输出流
      2)public void write(char cbuf[]) throws IOException; //将字符数组cbuf[]写入输出流
      3)public abstract void write(char cbuf[],int off,int len) throws IOException; //将字符数组cbuf[]中的从索引为off的位置处开始的len个字符写入输出流
      4)public void write(String str) throws IOException; //将字符串str中的字符写入输出流
      5)public void write(String str,int off,int len) throws IOException; //将字符6)flush( ) //刷空输出流,并输出所有被缓存的字节。
      7)close() 关闭流 public abstract void close() throws IOException。

    5 如何选择IO流?

    • 1 确定是数据源和数据目的(输入还是输出)
      源:输入流 InputStream 或 Reader
      目的:输出流 OutputStream 或 Writer
    • 2 明确操作的数据对象是否是纯文本
      是:字符流Reader或Writer
      否:字节流InputStream或OutputStream
    • 3 明确具体的设备。
      1)硬盘文件:FileInputStream 或 FileReader,FileOutputStream 或 FileWriter
      2)内存用数组byte[]:ByteArrayInputStream 或 ByteArrayOutputStream
      3)char[]:CharArrayReader 或 CharArrayWriter
      4)网络用Socket流
      5)键盘:System.in 或 System.out
    • 4 否需要转换流
      就使用转换流InputStreamReader/OutputStreamWriter将Stream转化为Reader/Writer
    • 5 否需要缓冲提高效率
      就加上Buffered:BufferedInputStream/BufferedOuputStream,以及BuffereaReader/BufferedWriter。

    6 IOException异常类的子类

    • 1 public class EOFException :
      非正常到达文件尾或输入流尾时,抛出这种类型的异常。
    • 2 public class FileNotFoundException:
      当文件找不到时,抛出的异常。
    • 3 public class InterruptedIOException:
      当I/O操作被中断时,抛出这种类型的异常。

     

    展开全文
  • JAVA基础(标准输入流

    千次阅读 2019-07-09 14:59:49
    System.in是InputStream, 标准输入流, 默认可以从键盘输入读取字节数据 System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据 2,修改标准输入输出流 修改输入流: System.set...

    1,什么是标准输入输出流(

    • System.in是InputStream, 标准输入流, 默认可以从键盘输入读取字节数据

    • System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据

     

    2,修改标准输入输出流

    • 修改输入流: System.setIn(InputStream)

    • 修改输出流: System.setOut(PrintStream)

    【1】 SystemInOut

    public class Demo06_SystemInOut {
    
        public static void main(String[] args) throws IOException {
    
            //demo1();
    
            System.setIn(new FileInputStream("a.txt"));            //改变标准输入流
    
            System.setOut(new PrintStream("b.txt"));            //改变标注输出流
    
            
    
            InputStream is = System.in;                            //获取标准的键盘输入流,默认指向键盘,改变后指向文件
    
            PrintStream ps = System.out;                        //获取标准输出流,默认指向的是控制台,改变后就指向文件
    
            
    
            int b;
    
            while((b = is.read()) != -1) {
    
                ps.write(b);
    
            }
    
            //System.out.println();                                //也是一个输出流,不用关,因为没有和硬盘上的文件产生关联的管道
    
            is.close();
    
            ps.close();
    
            
    
        }
    
    
    
        public static void demo1() throws IOException {
    
            InputStream is = System.in;
    
            int x = is.read();
    
            System.out.println(x);
    
            
    
            is.close();
    
            
    
            InputStream is2 = System.in;
    
            int y = is2.read();
    
            System.out.println(y);
    
        }
    
    
    
    
    
    }

     

    3,修改标准输入输出流拷贝图片

    import java.io.FileInputStream;
    
    import java.io.FileNotFoundException;
    
    import java.io.IOException;
    
    import java.io.InputStream;
    
    import java.io.PrintStream;
    
    public class Test2 {
    
        public static void main(String[] args) throws IOException {
    
            System.setIn(new FileInputStream("元.jpg"));            //改变标准输入流
    
            System.setOut(new PrintStream("copy.jpg"));             //改变标准输出流
    
            
    
            InputStream is = System.in;
    
            PrintStream ps = System.out;
    
            
    
            byte[] arr = new byte[1024];
    
            int len;
    
            
    
            while((len = is.read(arr)) != -1) {
    
                ps.write(arr, 0, len);
    
            }
    
            is.close();
    
            ps.close();
    
        }
    
    }
    
    

     

     

    展开全文
  • 博主声明: 转载请在开头附加本文链接及作者信息,并标记... I/O 关于数据的存储,分为内部存储和外部存储。内部存储就像内存一样,是一种临时性的对数据进行储存的方式,这种方式存储的数据量不大,但是获...
  • Java标准输入输出

    万次阅读 2018-05-24 16:41:04
    标准的输入输出流 InputStream in = System.in PrintStream out = Syste.out程序示例InputStream in = System.in public static void main(String[] args) throws IOException { //标准输入流 ...
  • 数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧...
  • Java输入输出

    千次阅读 多人点赞 2017-02-18 17:07:20
    Java输入输出
  • Java输入输出

    万次阅读 多人点赞 2018-05-12 15:27:45
    引言:在平时java开发中,被输入输出搞得头疼。特此写下这篇博客,一是为了总结输入输出,二是为了和大家分享。如果大家觉得写得好,就请高抬贵手点个赞呗!!! 1.输入格式,输出格式控制 1.1输入处理 java的...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • java总结输入流输出流

    万次阅读 多人点赞 2018-05-11 15:50:00
    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据进行输入输出,这些数据表示了字符或者字节数据的流动序列。Java的I/O提供了读写数据的标准方法。任何Java中...
  • 转换标准输入输出的实例 转换 转换(属于处理)作用在节点之上 转换共两种:输入型和输出型 输入型转换:将输入型字节转换为输入型字符,使得以字符形式读入,提高效率,输出型...
  • Java的常用输入输出语句

    万次阅读 多人点赞 2018-04-14 19:03:38
    其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。Java语言体系中,对数据流的主要操作都封装在java.io包中,通过java.io包中...
  • Java(标准输入/输出

    千次阅读 2016-08-31 20:00:22
    Java通过系统类System实现标准输入/输出的功能,定义了3个变量:in,out,和err.这3个Java中都定义为静态变量,可以直接通过System类进行调用。System.in表示标准输入,通常指从键盘输入数据;System.out表示标准...
  • Java流之读取标准流输入

    千次阅读 2018-02-27 11:13:36
    与程序交互时,从键盘获取输入内容是常有之事,这时可以考虑如下两种...示例一,使用Scanner扫描键盘输入:import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { ...
  • public static final InputStreamin:标准输入流。通常该流对应于键盘输入或者由主机环境或用户指定的另一个输入源 public static final PrintStream out:标准输出流。通常该流对应于显示输出或者由主机环境...
  • java字节输入流InputStream详解

    千次阅读 2018-04-12 04:42:34
    -------------------------java字节输入流InputStream详解--------------------- 因为InputStream是抽象类,我们要学习的是它的子类。 构造器 FileInputStream(File file) 通过打开一个到实际文件的连接来创建一...
  • 1 字符输入流 字符流(Java IO的Reader和Writer)功能与InputStream和OutputStream非常类似,InputStream和OutputStream基于字节处理,而字符流(Reader和Writer)是基于字符处理。主要用于读写文本。 1.1 Reader ...
  • Java标准输入

    千次阅读 2017-09-18 18:41:36
    在C++中,标准的输入输出是使用iostream库,cin为标准输入,cout为标准输出,cerr为输出警告和报告错误消息。clog是用来输出程序运行的一般信息。 [cpp] view plain copy //举例    ...
  • Java输入输出数据

    千次阅读 2017-12-15 08:48:51
    目录(?)[+]1什么是IO 2数据流的基本概念 1 数据流2 输入流Input Stream 3 输出流数据流...命令行参数标准输入输出数据流4javaIO层次体系结构 5 非流式文件类–File类 6 JavaIO流类库 io流的四个基本类io流的具体分类
  • 浅谈Java输入输出

    2020-12-22 18:44:49
    Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据,字符串流,对象,zip文件….本文的目的是为大家做一个简要的介绍。  是一个很形象的概念,当...
  • java中对象输入流和输出流

    千次阅读 2017-05-17 15:48:46
    1.ObjectInputStream对象输入流是用来恢复之前序列化存储的对象,对象输入流可以确保每次从流中读取的对象能匹配Java虚拟机中已经存在的类,根据需求使用标准机制加载类。另外只有支持Serializable或者Ext
  • JAVA输入输出学习心得

    千次阅读 2017-12-13 21:26:07
    从水龙头里流入,就叫输入流。官方一点,流就是有序的数据序列,有一个输入源,一个输出源。到计算机内存去叫输入流;从计算机内存出去输出流。字节流与字符流 字符流:16位,基于文本,字符流人是可
  • Java基础-3】吃透Java IO:字节、字符、缓冲

    万次阅读 多人点赞 2020-09-23 20:12:33
    什么是Java-IO?字符和字节的区别与适用场景是什么?缓冲到底实现了什么?如何高效地读写文件? 本文用大量的示例图和实例,带你吃透Java IO。
  • 无意间都到一篇《走心的安卓工程师跳槽经验分享》,发现自己工作几年了,技术方面虽然有了飞跃的进步,可是不知道自己的技术...08.IO输入流与输出流 java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设...
  • //保存原输出 PrintStream out=System.out; //保存原错误输出 PrintStream err=System.err; //建立新的输出 PrintStream ps=new PrintStream("./log.txt"); System.out....
  • [Java开发之路](8)输入流和输出流

    千次阅读 2015-12-30 14:03:17
    输入流: 可以从其中读入一个字节序列的对象称作输入流。 输出流: 可以向其中写入一个字节序列的对象称作输出流。 这些字节序列的来源地和目的地可以是文件,而且通常都是文件,但是也可以是网络连接,甚至是内存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,944
精华内容 61,577
关键字:

java标准输入流是什么

java 订阅