`
hanhan8020
  • 浏览: 45652 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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包在最外层。

分享到:
评论

相关推荐

    Java I/O 标准输入输出流System.in

    这篇博客将深入探讨Java中的标准输入流System.in,以及如何使用它进行数据的读取。 `System.in` 是一个`InputStream`类型的对象,它代表了程序的默认标准输入,通常是从键盘获取用户输入。当我们在控制台运行Java...

    java编写oracle的存储过程,为什么调用System.in阻塞IO时不起作用?还报错?

    首先,Java中的System.in是一个InputStream对象,它代表程序的标准输入流,通常是键盘输入。当调用System.in.read()或相关方法时,程序会阻塞,等待用户输入数据。然而,在服务器环境或者非交互式应用中,如调用...

    Exception in thread “main“ java.util.InputMismatchException.pdf

    当程序期待从标准输入流接收到一个`int`类型的数值,但用户实际上输入了一个非整数的字符串,如字母或特殊字符,这时就会抛出这个异常。 为了深入理解这个问题,我们首先需要了解Java中的数据类型。在Java中,整数...

    Java中的字节流.

    - **基本介绍**:`InputStream`是一个抽象类,它定义了所有输入流必须支持的一些基本方法,如`read()`等。 - **read()方法**: - `public int read() throws IOException`:从流中读取一个字节。如果已经到达流的...

    java代码-System.in.read()测试

    在Java编程语言中,`System.in.read()`是一个用于从标准输入流(stdin)读取单个字节数据的方法。这个方法广泛应用于命令行程序,允许用户通过键盘输入数据与程序进行交互。在这个“java代码-System.in.read()测试”...

    java输入输出语句.doc

    System.in 是标准输入流,用于从键盘输入数据;System.err 是标准错误设备,用于输出系统错误信息。 System.out 是 PrintStream 类对象,输出字节数据流;System.in 是 InputStream 类对象,输入字节数据流;System...

    Java中从命令控制台输入数据的几种常用方法

    `System.in`是Java标准输入流的一个实例,通常用于读取键盘输入。但是,`System.in.read()`方法每次只能读取一个字节的数据,这对于读取字符串或更复杂的数据结构来说效率较低且不够直观。因此,虽然这种方法可以...

    ACM中使用java

    2. **设置System.in**:然后通过`System.setIn(in)`方法将系统默认的输入流替换为自定义的输入流。 ```java System.setIn(in); ``` 3. **读取数据**:接下来可以使用`Scanner`类从修改后的`System.in`读取数据...

    Java\输入输出.txt

    - **`System.in`**: 是标准输入流,通常用于从控制台读取数据。在Java中,可以使用`InputStream`类或`Scanner`类来读取`System.in`的数据。 - **`System.out`**: 是标准输出流,用于向控制台输出数据。可以通过调用`...

    Java程序设计基础:控制台输入输出.pptx

    System.in 表示Java标准输入流,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。 Scanner in =new Scanner(System.in); 从控制台获取输入 创建输入流对象in 必须先导入Scanner类 import java.util....

    在java中_如何使用输入

    字节输入流 `System.in` 是 `InputStream` 的常量对象,可以使用 `read()` 方法从键盘接收数据。实现步骤是:先把数据读入字节数组中,然后利用字节数组定义字符串,最后把字符串转化为需要的数据类型。例如: ```...

    Java 接收键盘输入流

    在Java编程语言中,接收键盘输入流是一项基本但至关重要的任务,它允许程序与用户进行交互。在给定的代码示例中,我们看到如何使用`java.io`包中的类来实现这一功能。以下是详细的知识点解释: 1. **...

    JAVA实验报告三java输入输出.docx

    数据流是指数据传输的路径,Java中的I/O流分为字节流和字符流两大类,每类又分为输入流和输出流。字节流处理的是8位的字节,而字符流处理的是16位的Unicode字符。流的层次结构包括了InputStream、OutputStream、...

    2022年计算机二级考试Java入门教程:Java输入输出操作.docx

    System.in 是一个 InputStream 类的实例,可以使用 read() 和 skip(long n) 两个成员函数来读取输入。System.out 和 System.err 是 PrintStream 类的实例,可以使用 print() 和 println() 两个成员函数来输出信息。 ...

    引用 Java中从命令控制台输入数据的几种常用方法.doc

    System.in 是 Java 中的一个标准输入流对象,它可以用来读取从命令控制台输入的数据。使用 System.in.read() 方法可以读取一个字节的数据,但这对于读取字符串或一组数字来说是不够的。为了读取更多的数据,可以使用...

    java 输入语句

    Java提供了多种输入方式,包括标准输入流`System.in`、`Scanner`类以及命令行参数等。本文将详细介绍这些输入方式,并通过实例演示如何使用它们。 #### 二、标准输入流`System.in` `System.in`是Java中的标准输入...

Global site tag (gtag.js) - Google Analytics