Java中的内存流 屏幕输入输出流


内存流

从内存中读出写到内存
在之前FileInputStream 和 FileOutputStream 的时候所有的操作的目标是文件,那么如果现在假设有一些临时的信息要求通过IO操作的话,那么如果将这些临时的信息保存在文件之中则肯定很不合理,因为操作的最后还要把文件再删除掉,所以此时的IO中就提供了一个内存的操作流,通过内存操作流输入和输出的目标是内存。

一个很好的案例是: 类型转换

屏幕的输入输出流

它不能被创建

可以重定向

try {
     //输入重定向(测试用例用的), 可以定向到文件中去读取
     System.setIn(new FileInputStream("res/test.txt"));
     //输出重定向
     //System.setOut();
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 }

注意: System.in.available()不能获取到

try {
    //因为存在阻塞,所以不能使用该方法获取
   System.out.println(System.in.available());
} catch (IOException e) {
    e.printStackTrace();
}

输入流

 InputStream in = System.in;
 Scanner scanner = new Scanner(System.in);
 String next = scanner.next();//字符串输入, 以空白字符作为分割
 System.out.println(next);
 可以读取想要的类型
 int i = scanner.nextInt();//如果太长会报异常
 BigInteger big = scanner.nextBigInteger();//读取一个超大的数字
 System.out.println(big);
 BigInteger add = big.add(new BigInteger("10"));//可以进行基本运算
 System.out.println(add);

打印流

 /*
 不能用普通的流的读取的方式去读取, 它永远不会返回-1, 可以设定特定的字符
  */

 /*
 屏幕输出流
  */
 PrintStream out = System.out;//打印流!
 try {
     out.write("abc".getBytes());
 } catch (IOException e) {
     e.printStackTrace();
 }
 //System.err和System.out 碰到一块时不一定谁先执行
 System.err.printf("红色的");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值