最近做了,一个java的socket服务【
需要用一个java类去读取另一个properties文件的内容,再此做个笔记,方便以后查看!
port.properties文件内容如下
port=9999
Server.java类如下,加载。。。。。。port.properties的端口号为9999
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Server {
public static void main(String[] args) throws Exception {
final ExecutorService threadPool = Executors.newCachedThreadPool();
final Set<Socket> sockets = new HashSet<>();
InputStream inputStream = getResourceAsStream("port.properties");
final Properties properties = new Properties();
properties.load(inputStream);
final String port = properties.getProperty("port");
int myport=Integer.parseInt(port);
ServerSocket serverSocket = new ServerSocket(myport);
while(true) {
final Socket socket = serverSocket.accept();
sockets.add(socket);
threadPool.execute(new Runnable() {
@Override
public void run() {
try {
final InputStream in = socket.getInputStream();
int b;
while((b = in.read()) != -1) {
for (Socket socket1 : sockets) {
if (socket1 != socket) {
socket1.getOutputStream().write(b);
}
}
}
} catch(IOException e) {
e.printStackTrace();
} finally {
sockets.remove(socket);
}
}
});
}
}
}