小编Leo*_*rra的帖子

ObjectInputStream始终检索空List

我正在开发一个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)

java objectoutputstream objectinputstream

1
推荐指数
1
解决办法
140
查看次数

用sed或awk删除if及其块

我正在尝试使用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)

但它的行为不可靠(通常会留下条件或最后一个括号)。

awk sed

1
推荐指数
1
解决办法
76
查看次数

标签 统计

awk ×1

java ×1

objectinputstream ×1

objectoutputstream ×1

sed ×1