java.io.inputstream
时间: 2023-04-20 22:02:03 浏览: 184
java.io.InputStream 是 Java 标准库中的一个抽象类,表示输入字节流的抽象接口。它定义了从字节输入流读取数据的基本方法,并被多种具体实现类扩展,例如:FileInputStream、ByteArrayInputStream 等。
相关问题
java.lang.NullPointerException: Cannot invoke "java.io.InputStream.close()" because "inputStream" is null
`java.lang.NullPointerException: Cannot invoke "java.io.InputStream.close()" because "inputStream" is null`是一个常见的Java运行时异常,它发生在试图对null对象调用方法的情况下。在这个例子中,程序试图关闭名为`inputStream`的InputStream对象,但是这个对象的值为null,即它不存在或者已经被初始化为null。
`close()`方法是用来关闭输入流的,如果对象本身是null,那么就不能安全地执行这个操作,因为这会导致NullPointerException。通常,这种错误可能是由于以下几个原因:
1. 没有正确地创建或获取到InputStream实例。
2. 对象在使用之前没有被初始化。
3. 流的对象在其生命周期结束前未能被显式关闭,可能会导致资源泄漏。
处理这类问题的一般做法是在调用`close()`方法之前检查对象是否为null,例如:
```java
if (inputStream != null) {
inputStream.close();
}
```
package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ChatClient { public static void main(String[] args) throws UnknownHostException, IOException { Socket sk=new Socket(InetAddress.getByName("127.0.0.1"),9090); //打开读取的字节流 InputStream is = sk.getInputStream(); //字节流转换为字符流量 InputStreamReader isr=new InputStreamReader(is); //添加buffered BufferedReader br=new BufferedReader(isr); String str = br.readLine(); System.out.println("服务器:"+str); //定义一个输入器 Scanner mys=new Scanner(System.in); System.out.println("请输入您要发送的内容:"); String sa=mys.next(); OutputStream os = sk.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(sa); bw.newLine(); bw.flush(); } }
这是一个Java编写的聊天客户端程序。它创建了一个套接字(Socket)连接到本地IP地址为"127.0.0.1",端口号为9090的服务器。程序从套接字的输入流中获取数据,将字节流转换为字符流并使用缓冲区来读取。然后,程序从控制台读取用户的输入,并将数据写入套接字的输出流中,由服务器进行接收和处理。请注意,此程序只发送一次消息,然后就退出了。
阅读全文