首页 > 其他 > 详细

标准输入流(System in)和输出流PrintStream(System.out)

时间:2019-05-07 20:51:56      阅读:258      评论:0      收藏:0      [点我收藏+]

 

 

package sc.IO;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;


/*标准输入流
 * 源数据源是标准输入设备(键盘、鼠标、触摸屏)等输入设备。
 * 在java中用System.in 得到一个InputStream字节输入流。
     * */

public class System01 {
public static void main(String[] args) throws IOException {
    //需求:在控制台输入1个字母,然后原样输出
    //InputStream in=System.in;
    //int c=in.read();
    //System.out.println((char)c);
    //控制台输入字符进来,转换为字节流,因为是字母,所以再把得到编码强转为char
    
    
    
    // 需求:输入一句话,然原样输出
    InputStream in1 = System.in;//控台输入,电脑读取的是字节流
    byte [] buf=new byte[1024];//创建一个字节流数组
    int len;
    len=in1.read(buf);//把in1字节流放入buf数组,反回len字节数组长度
    String str=new String(buf,0,len);//没有写解码类型,平台默认编码
    System.out.println(Arrays.toString(buf));
    //[-76, -78, -57, -80, -61, -9, -44, -62, -71, -30, 13, 10, 0, 0,...]
    //13 和 10 是  回车和换行;    buf中自动包含回车和换行,所以len长度也不可靠
    System.out.println(str);//
    //输出结果:床前明月光
    
    




    // 需求:从控制台高效读取一行数据。把一首诗写入文件。
    InputStream in2 = System.in;//控台输入字节流
    InputStreamReader reader=new InputStreamReader(in2, "GBK");//把字节流通过GBK解码为字符流
    BufferedReader br=new BufferedReader(reader);//读取整行字符
    File file =new File("D:\\gameproject\\a.txt");//创建文件
    FileWriter whiter=new FileWriter(file);//把字符写入文件
    BufferedWriter bw = new BufferedWriter(whiter);//整行写入
    String end = "bye";
    while(true){
        String line=br.readLine();//整行读取放入数组
        if(line.equals(end)) {
            break;
        }
        bw.write(line); //整行写入
        bw.newLine();//换行
    }
    
    bw.flush();//刷新缓存区
    
    bw.close();//关闭通道
    whiter.close();//关闭通道
    
    

注意:

[1] 标准输入流以字节流流入内存,如果在控制台中输入字符,字符以默认编码(win简体:gbk)编码成字节进入标准输入流。

 

标准输入流(System in)和输出流PrintStream(System.out)

原文:https://www.cnblogs.com/406070989senlin/p/10827815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!