import java.io.InputStream
时间: 2024-03-06 21:34:24 浏览: 129
public class MyClass {
public static void main(String[] args) {
// Create an input stream
InputStream inputStream = System.in;
// Read the input from the user
System.out.println("Enter your name: ");
try {
byte[] input = new byte[100];
int numBytesRead = inputStream.read(input);
String name = new String(input, 0, numBytesRead);
System.out.println("Hello, " + name + "!");
} catch (Exception e) {
System.out.println("Error reading input: " + e.getMessage());
}
}
}
相关问题
package day0608.utils; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 连接池工具类
这是一个连接池工具类的代码,它使用阿里巴巴的Druid连接池来实现数据库连接的复用,避免频繁地创建和关闭数据库连接。通过读取配置文件中的数据库连接参数,创建Druid数据源,并通过数据源获取数据库连接。在使用完成后,需要将连接关闭并归还给连接池。以下是代码的详细解释:
1. 导入Druid相关的类和接口
```java
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
```
2. 创建连接池工具类
```java
public class ConnectionPoolUtil {
private static DataSource dataSource;
static {
try {
// 读取配置文件
InputStream inputStream = ConnectionPoolUtil.class.getClassLoader().getResourceAsStream("druid.properties");
Properties properties = new Properties();
properties.load(inputStream);
// 创建Druid数据源
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取数据库连接
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
// 关闭数据库连接
public static void closeConnection(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
3. 使用连接池工具类
```java
public class MyDao {
public List<User> getAllUsers() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<User> userList = new ArrayList<>();
try {
// 获取数据库连接
conn = ConnectionPoolUtil.getConnection();
pstmt = conn.prepareStatement("SELECT * FROM user");
rs = pstmt.executeQuery();
// 处理查询结果
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
userList.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
ConnectionPoolUtil.closeConnection(conn, pstmt, rs);
}
return userList;
}
}
```
以上是连接池工具类的基本实现,可以在多线程环境下安全地使用。同时,Druid还提供了很多其他的功能,例如监控、防御SQL注入攻击等,可以根据实际需求进行配置和使用。
ChatClient.java程序: 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 { Socketsk=newSocket(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(); } }
这段代码是一个简单的聊天客户端程序,它会连接到本地IP地址为127.0.0.1,端口号为9090的服务端程序,并发送一条消息。具体来说,它的执行过程如下:
1. 创建一个Socket对象,指定要连接的服务端的IP地址和端口号;
2. 通过Socket对象获取输入流,然后将字节流转换为字符流,再添加缓冲区,最后读取服务端发送过来的一行消息;
3. 创建一个Scanner对象,让用户输入要发送的消息;
4. 通过Socket对象获取输出流,然后将字符流转换为字节流,再添加缓冲区,最后将用户输入的消息发送给服务端。
需要注意的是,这段代码只是一个简单的示例,实际上在真正的聊天应用中还需要考虑很多其他的因素,如多个客户端同时连接、消息的序列化和反序列化、消息的广播等等。
阅读全文