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) 在这种情况下,我试图公开空间搜索结构的标准 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 …
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 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)
我只是不知道如何在代码中实现这一点。网络上的所有资源都是简单的示例,不适用于集合对象。任何指示/提示将不胜感激。