📌  相关文章
📜  教资会网络 | UGC NET CS 2014 年 12 月 – II |问题 18(1)

📅  最后修改于: 2023-12-03 14:54:48.288000             🧑  作者: Mango

UGC NET CS 2014 年 12 月 – II | 问题 18

简介

UGC NET CS 2014 年 12 月 – II 的问题 18 针对输入/输出流的理解和使用,考查了程序员的基本知识。输入/输出流是很重要的概念,它涉及到程序与外部环境的交互。程序员需要了解流的类型、使用方法及异常处理等知识点。

问题描述

在 Java 中,下列哪个选项用于 Java 程序读取从网络连接传入的数据?

A. InputStreamReader B. FileReader C. BufferedReader D. Scanner

答案解析

正确答案是 A. InputStreamReader。

Java 中的输入/输出流是将数据传输到程序中或从程序中传输数据的方式。程序员必须了解输入/输出流的类型、使用方法及异常处理等重要知识点。在 Java 中,程序可以通过 InputStream 和 OutputStream 接口来定义输入和输出流。

InputStreamReader 是 Java 中将 InputStream 转换为 Reader 的桥梁。通过 InputStreamReader 可以从字节流读取字符流。因此,InputStreamReader 可以用于读取从网络连接传入的数据。

FileReader 是用于读取文件的字符流。BufferedReader 是用于缓冲字符输入流的高级类。Scanner 是用于读取用户输入或文件内容的类。因此,它们不能用于从网络连接读取数据。

代码示例

下面的代码示例展示了如何使用 InputStreamReader 从网络连接读取数据。

try {
    Socket socket = new Socket("localhost", 8080);
    InputStream inputStream = socket.getInputStream();
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        System.out.println(line);
    }
    bufferedReader.close();
    inputStreamReader.close();
    inputStream.close();
    socket.close();
} catch (IOException e) {
    e.printStackTrace();
}

以上代码演示了从本地主机端口 8080 连接到网络,并使用 BufferedReader 读取从网络连接传入的数据的过程。在 try-catch 语句块中,Socket 类用于创建一个套接字连接,然后获取输入流并使用 InputStreamReader 将字节流转换为字符流。最后使用 BufferedReader 实例化一个缓冲字符输入流,通过 while 循环从流中读取行并输出到控制台。最后释放资源。如果发生异常,则打印异常栈信息。