当前位置: 首页 > news >正文

java system.in 怎么写,java 里System.in 输入流如何使用

java 里System.in 输入流怎么使用?

import java.io.*;

public class IOStreamDemo {

public void samples() throws IOException {

//1. 这是从键盘读入一行数据,返回的是一个字符串

BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter a line:");

System.out.println(stdin.readLine());

//2. 这是从文件中逐行读入数据

BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java"));

String s, s2 = new String();

while((s = in.readLine())!= null)

s2 += s + "\n";

in.close();

//3. 这是从一个字符串中逐个读入字节

StringReader in1 = new StringReader(s2);

int c;

while((c = in1.read()) != -1)

System.out.print((char)c);

//4. 这是将一个字符串写入文件

try {

BufferedReader in2 = new BufferedReader(new StringReader(s2));

PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));

int lineCount = 1;

while((s = in2.readLine()) != null )

out1.println(lineCount++ + ": " + s);

out1.close();

} catch(EOFException e) {

System.err.println("End of stream");

}

}

}

对于上面的例子,需要说明的有以下几点:

1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:

BufferedReader(Reader in)

BufferedReader(Reader in, int sz)

这里的sz是指定缓冲区的大小。

它的基本方法:

void close() //关闭流

void mark(int readAheadLimit) //标记当前位置

boolean markSupported() //是否支持标记

int read() //继承自Reader的基本方法

int read(char[] cbuf, int off, int len) //继承自Reader的基本方法

String readLine() //读取一行内容并以字符串形式返回

boolean ready() //判断流是否已经做好读入的准备

void reset() //重设到最近的一个标记

long skip(long n) //跳过指定个数的字符读取

2. InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给 BufferedReader使用。

3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));

句话体现了Java输入输出系统的一个特点,为了达到某个目的,需要包装好几层。首先,输出目的地是文件IODemo.out,所以最内层包装的是

FileWriter,建立一个输出文件流,接下来,我们希望这个流是缓冲的,所以用BufferedWriter来包装它以达到目的,最后,我们需要格

式化输出结果,于是将PrintWriter包在最外层。

相关文章:

  • php 两数最大相同子串,用javascript求两个字符串最大的相同的子串(代码实例)...
  • JAVA ulimit,Linux:使用ulimit设置文件最大打开数
  • matlab表示数据散度的统计量,matlab kl-divergence(KL散度)实现代码 | 学步园
  • mysql anzhaung xiangjie,GitHub - dizhaung/spring-boot-student: spring-boot-student
  • php 2m 上传 限制,解决wordpress上传文件2M限制
  • matlab画图的参数,Matlab 画图plot参数 颜色 类型
  • 谱聚类算法 matlab,SpectralClustering 谱聚类算法的matlab实现 238万源代码下载- www.pudn.com...
  • centos 查看php并发访问量,如何查看centos是否联网
  • java编程实现求素数个数,Java并行程序设计——求素数个数(Runnable接口实现)...
  • wordpress文章页饮用php文件,wordpress进阶教程之在后台文章编辑页面添加自定义面板类文件|wordpress主题定制-阿树工作室...
  • oracle与用友的差别,用友U9 PK SAP/Oracle:敢比就是赢
  • oracle监听unknow,为什么侦听的status 为UNKNOWN ?
  • oracle不能单步调试,oracle没有存储过程debug权限
  • oracle失效对象是什么意思,Oracle中无效数据库对象的处理方法
  • oracle sql优化指导,Oracle优化SQL基础
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017年终总结、随想
  • 4. 路由到控制器 - Laravel从零开始教程
  • Android Volley源码解析
  • CentOS7简单部署NFS
  • css系列之关于字体的事
  • echarts花样作死的坑
  • fetch 从初识到应用
  • IDEA 插件开发入门教程
  • input的行数自动增减
  • maya建模与骨骼动画快速实现人工鱼
  • mysql innodb 索引使用指南
  • Netty源码解析1-Buffer
  • Python 基础起步 (十) 什么叫函数?
  • Python十分钟制作属于你自己的个性logo
  • Service Worker
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • vue自定义指令实现v-tap插件
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 批量截取pdf文件
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 找一份好的前端工作,起点很重要
  • 智能网联汽车信息安全
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​queue --- 一个同步的队列类​
  • ​一些不规范的GTID使用场景
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #QT(串口助手-界面)
  • (二)丶RabbitMQ的六大核心
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)ORM
  • **CI中自动类加载的用法总结
  • .Net CF下精确的计时器
  • .net core 6 redis操作类
  • .net 流——流的类型体系简单介绍
  • .Net程序帮助文档制作
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)