我正在开发一个Client-Server项目(你可以称之为"广播聊天"),但我遇到了ObjectInputStream的问题.它总是检索我一个空列表,我找到了解决方案,但我不知道为什么它的工作原理...
这是有问题的代码(检查服务器的sendMsg()函数):
服务器:
public class CoreServer implements Runnable {
private Socket sock;
private ServerConnect sc;
private ObjectOutputStream oos;
private ObjectInputStream ois;
private boolean running=true;
private List<String> lstr;
public CoreServer(Socket sock, ServerConnect sc) {
this.sock=sock;
this.sc=sc;
}
@Override
public void run() {
lstr=new LinkedList<String>();
try {
oos= new ObjectOutputStream(sock.getOutputStream());
ois=new ObjectInputStream(sock.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
while (running){
Object o=null;
try {
o= ois.readObject();
} catch (ClassNotFoundException | IOException e) {
// TODO Auto-generated catch block
sc.remove(this);
stop();
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用sed从构建文件中删除条件块,但到目前为止它没有用。
我要删除的块是每次出现的“ if(!isFoss()){...}”。
这是我正在处理的文本示例:
repositories {
google()
if (!isFoss()) {
maven {
url 'https://maven.fabric.io/public'
}
}
if (!isFoss()) {
something {
url 'https://anotherurl.test/public'
}
}
}
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
repositories {
google()
}
Run Code Online (Sandbox Code Playgroud)
我尝试过
sed '/!isFoss()/!b;:A;N;;/\n}/!{s/\n.*//;bA}'
Run Code Online (Sandbox Code Playgroud)
但它的行为不可靠(通常会留下条件或最后一个括号)。