小编Abh*_*hek的帖子

新的ObjectInputStream()块

public class SerProg {


    static ServerSocket ser=null;
    static Socket cli=null;
    static ObjectInputStream ins=null;
    static ObjectOutputStream outs=null;


    public static void main(String[] args) {

        try {

            ser=new ServerSocket(9000,10);
            cli=ser.accept();

            System.out.println("Connected to :"+cli.getInetAddress().getHostAddress()+" At Port :"+cli.getLocalPort());

            ins=new ObjectInputStream(cli.getInputStream());
            outs=new ObjectOutputStream(cli.getOutputStream());

            String str=(String)ins.readObject();


        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

}
Run Code Online (Sandbox Code Playgroud)

和客户

public class SerProg {

    /**
     * @param args
     */
    static ServerSocket ser=null;
    static Socket cli=null;
    static ObjectInputStream ins=null;
    static ObjectOutputStream outs=null;


    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java sockets objectinputstream

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

在 C++ 中清理脏标志的巧妙方法

在这种情况下,我试图公开空间搜索结构的标准 API,其中构建结构的各种方法的输入数据是相同的,但构建搜索结构的方式不同。我有基类上的数据设置器和派生类需要实现的纯虚拟 Build() 方法来构造搜索结构。下面是我的基类的样子

class SpatialSearch
{
public:
  void SetData(Data data_)
  {
    this->data = data_;
    this->dirty = true;
  }

  virtual void Build() = 0;

  int search(Vec3 point)
  { 
    if(dirty)
      Build();
    // Code to perform a search. I won't get into the 
    // nitty gritty of this, but this exists as a commom
    // implementation on the base class for all the spatial 
    // search structures.
  }

private : 
  Data data;
  bool dirty;
}
Run Code Online (Sandbox Code Playgroud)

因此,如果您注意到,每次搜索调用都会检查该dirty标志。如果上次之后数据已更改,我会重建结构。但是,Build 方法是在派生类上实现的,我需要一种方法来强制执行false在执行 Build …

c++ design-patterns software-design

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

Java进程无法通过Runtime.getRunTime()。exec()获得InputStream

try {

        String str;
        Process process = Runtime.getRuntime().exec("bash /home/abhishek/workspace/Pro/run");
        InputStream isout = process.getInputStream();
        InputStreamReader isoutr = new InputStreamReader(isout);
        BufferedReader brout = new BufferedReader(isoutr);
        while ((str = brout.readLine()) != null) {
            System.out.println(str);
        }

} catch (IOException e) {
        e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

该代码在从流程获取InputStream方面存在问题,因为如果我从终端运行Shell脚本,则它运行得很好,但是如果我像这样运行脚本,则str始终为null,

我正在使用此代码将Shell脚本的输出直接获取到Java中,而不是在文件中写入脚本输出

还有其他方法可以解决此问题,或者如何使用当前方法解决问题

java linux shell runtime bufferedreader

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

Java映射/收集流以求和列表列表

我正在使用 Java 8 以及包中的 Map、Reduce、Collect API java.util.stream。我有一个用例,我需要对列表的列表进行垂直求和。我的列表的结构是List<List<Integer>> 我想不出一种方法可以使用映射压缩内部列表,并减少或收集流上可用的操作。考虑以下代码。假设我的列表名为transactions. 此交易存储的是内部列表中每个商品的每笔交易中售出的商品数量。内部清单的长度对于所有交易都是相同的,因为它包含库存中每一项的一个条目。如果该项目未参与交易,则仅存储 0。

我在想一些关于

transaction.stream().map(
      /*Try and put sum into an accumulator List*/
).collect(
      /*Collect entries into a list*/
)
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何在代码中实现这一点。网络上的所有资源都是简单的示例,不适用于集合对象。任何指示/提示将不胜感激。

java java-stream

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