System.in是提供用户输入数据的"标准"输入流.关闭后,无法重新打开此流.一个这样的例子是在使用扫描仪读取用户输入的情况下如下:
public class Test {
public static void main(String[] args) {
boolean finished;
do {
Scanner inputScanner = new Scanner(System.in);
finished = inputScanner.hasNext("exit");
boolean validNumber = inputScanner.hasNextDouble();
if (validNumber) {
double number = inputScanner.nextDouble();
System.out.print(number);
} else if (!finished) {
System.out.println("Please try again.");
}
inputScanner.close();
} while (!finished);
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,Scanner创建了一个类型实例,用于从用户读取一系列数字(请忽略此代码的其他详细信息,超出此示例的范围,我知道应在循环外创建并关闭扫描程序).在从用户输入检索到数字之后Scanner,关闭该实例(即,输入流).但是,当从用户请求另一个号码并创建新实例时,无法再次打开输入流.在这个例子的情况下,它创建一个无限循环.
问题是:为什么不能重新打开封闭的流?
我isolcpus只为内核任务分配总 CPU 核心的子集。这意味着我可以将提醒用于其他任务。我注意到当我从 go 运行测试/基准测试工具时,所有内核处理器都被使用(使用 htop)。但是,当我使用 时taskset -c 3-10 go test -bench .,只有一个 CPU 核心显示正在运行该命令。我预计工作负载会分配到核心 3-10。有可能实现这一目标吗?
更新:感谢 @JimB 的建议:我正在为内核核心保留的 cpu 核心上运行以下 golang 代码,taskset并且工作正常。但是,当在这些核心之外进行调度时,仅使用一个 cpu 核心,而不是 中指定的整个范围taskset。
package main
import (
"fmt"
"golang.org/x/sys/unix"
"testing"
"time"
)
func TestSchedSetaffinity(t *testing.T) {
var newMask unix.CPUSet
newMask.Set(0)
err := unix.SchedSetaffinity(0, &newMask)
if err != nil {
fmt.Printf("SchedSetaffinity: %v", err)
}
for i := 0; i < 50; i++ {
fmt.Println("Hello world")
time.Sleep(2 * time.Second)
} …Run Code Online (Sandbox Code Playgroud) 我在节点上有一个REST客户端,我正在尝试将pdf文件上传到另一个REST Web服务器,它提供了解析我的pdf并提取一些数据的能力.基本上它是一种服务.我使用的npm包是:https://www.npmjs.com/package/node-rest-client.如果还有其他休息客户,我也可以使用它们.我需要使用的其余API如下所述:
POST / ; Uploads a new PDF document via a form <br>
POST /file ; Uploads a new PDF document via bytestream
Run Code Online (Sandbox Code Playgroud)
问题是如何上传文件.另外,我想看看如何在另一端存储文件.
HTTP主要用于查看网页.Coap是IoT或WSN的HTTP简化版本.虽然COAP基于UDP,但它应该有ACK消息来模拟TCP.由于COAP比HTTP简单,因此它具有更低的延迟并且消耗更少的功率.
那么,为什么浏览器和Web服务器不能用COAP替换HTTP?鉴于以前的论点,是否预计COAP将完全取代HTTP?这只是时间问题吗?是否有任何仅受HTTP支持的功能?
如何在Batch中解析一个简单的JSON字符串?
例如,如果我有以下JSON字符串:
{"...":"...","年":2016年,"时间":"05:01","......":"......",}
这个JSON字符串有许多元素,其中两个是"年"和"时间".从这个字符串,我想在两个变量中提取"年"和"时间"的值而不使用任何外部库(即,我不想为此安装下载任何外部工具,新安装的Windows应该全部这样做的必要工具).
我有4个自定义微调器,可以修改一个选定小部件的宽度,高度,X位置和Y位置.我的小部件可以在屏幕上拖动,并且想法是使用这些微调器来更改某些属性,例如宽度或高度,并立即看到对更改的影响.是否有一个模式可以用来替换所有这些类(XSpinnerListener,YSpinnerListener ...)只有一个,并指示我当前对象(JButton)的哪个属性需要更改?这是一个很好的设计方法吗?
public void init(){
widthSpinner.setListener(new WidthSpinnerListener());
heightSpinner.setListener(new HeightSpinnerListener());
xSpinner.setListener(new XSpinnerListener());
ySpinner.setListener(new YSpinnerListener());
}
public class XSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setLocation(xSpinner.getValue(), current.getY());
}
}
public class YSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setLocation(current.getX(), ySpinner.getValue());
}
}
public class WidthSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setSize(widthSpinner.getValue(), current.getHeight());
}
}
public class HeightSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setSize(current.getWidth(), heightSpinner.getValue());
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个数据库,一个在伦敦,一个在都柏林.如何在云数据库中全面查看数据?假设数据库结构允许我使用多个位置,这样就不会发生冲突.
编辑:数据库中的所有更改都在本地完成.例如:假设我在都柏林有一个传感器,它将数据转储到Dublin数据库,另一个传感器在伦敦,它将收集的数据转储到伦敦数据库中.如何在云数据库中获取此数据的联合视图?从管理界面我想查询云数据库,而不是其他数据库.
我在这里没有找到有关如何处理该异常的答案,但是没有解释为什么会首先发生这种情况。我有以下代码:
for (Map.Entry<String, Double> entry: qosMap.entrySet()) {
JSONObject qosEntry = new JSONObject();
try {
qosEntry.put(entry.getKey(), entry.getValue());
} catch (JSONException ex) {
Logger.getLogger(JSONUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
qosMap永远不会为空,并且此映射中的数据将始终有效。
在什么情况下会引发异常?为什么需要额外的代码?
在java中发现了一些奇怪的东西.
码:
System.out.println(System.getProperty("java.version"));
System.out.println((true) ? (int)2.5 : 3.5);
System.out.println((true) ? (int)2.5 : 3);
System.out.println((true) ? (int)2.5 + "" : 3.5);
Run Code Online (Sandbox Code Playgroud)
结果:
1.8.0_40 2.0 2 2
它是什么?为什么只有当false的值不是double或者如果将字符串值添加到true的值时,整数值才会返回?这是一个错误吗?