我想换一个java.util.streams.Stream围绕InputStream处理一个字节或一次一个字符.我没有找到任何简单的方法来做到这一点.
请考虑以下练习:我们希望计算每个字母在文本文件中出现的次数.我们可以将它存储在一个数组中,以便tally[0]存储在文件中出现的次数,tally[1]存储出现的时间b等等.由于我找不到直接传输文件的方法,我这样做了:
int[] tally = new int[26];
Stream<String> lines = Files.lines(Path.get(aFile)).map(s -> s.toLowerCase());
Consumer<String> charCount = new Consumer<String>() {
public void accept(String t) {
for(int i=0; i<t.length(); i++)
if(Character.isLetter(t.charAt(i) )
tall[t.charAt(i) - 'a' ]++;
}
};
lines.forEach(charCount);
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用该lines方法的情况下完成此操作?我可以直接将每个字符作为Stream或Stream处理,而不是为文本文件中的每一行创建字符串.
我可以更直接地转换java.io.InputStream成java.util.Stream.stream?
是否可以通过Android的SDK隐藏您呼叫的号码?考虑一下:您希望拨打私人电话,但由于许多人阻止私人号码,您不想使用*67.这是医生经常做的事 - 他们用手机打电话,但不希望病人有私人手机号码.
所以想象一下,我们正在为Physicians构建一个app.该应用程序将获得一个联系人列表,单击一个联系人并进行呼叫,但这样会隐藏该电话的来电显示.例如,我的Google语音号码与我的真实手机号码不同,我可以通过此号码接听电话.有没有办法以编程方式通过Google Voice拨打电话?
我是否还可以在通话中注册一些事件监听器,以便在通话结束时,应用程序是否知道它?
我有一个桌面客户端,它将数据发送到Web服务器,我似乎无法通过代理服务器.
更新:尝试通过代理进行通信时,我收到407 HTTP错误.
从我的Web服务器下载信息时,一切都很好.一旦用户配置代理服务器(使用我写的对话框),下载工作正常.但是使用org.apache.http.client.HttpClient上传数据是行不通的.
在从JDialog收集信息后,我正在使用这样的代码配置代理服务器.
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", "" + portNumber);
Run Code Online (Sandbox Code Playgroud)
现在,一旦我们这样做,简单的下载工作正常.例如,我有从我的Web服务器读取一些xml数据的代码(见下文).在客户的网络上,我的catch块中的错误在配置代理设置之前显示,然后一旦设置了正确的代理,一切正常.
/**
* Loads a collection of exams from the web site. The URL is determined by
* configuration or registration since it is State specific.
*/
public static int importExamsWS(StringBuilder msg) {
try {
java.net.URL onlineExams = new URL(examURL);
//Parse the XML data from InputStream and store it.
return importExams(onlineExams.openStream(), msg);
}
catch (java.net.UnknownHostException noDNS) {
showError(noDNS, "Unable to connect to proctinator.com to download the …Run Code Online (Sandbox Code Playgroud) 当在JTable(Nimbus L&F)中编辑数据时,当用户从一个单元格切换到另一个单元格时,不清楚哪个单元格具有焦点.如何更清楚地说明哪个细胞有焦点?我知道有很多属性可以设置来修改Nimbus - 有谁知道我想要哪个属性?
下面的屏幕截图只有一个属性设置为默认值以外的其他属性:
UIManager.put("Table.showGrid", true);
Run Code Online (Sandbox Code Playgroud)

我想将两个字符串分类为相似或不相似.例如
s1 = "Token is invalid. DeviceId = deviceId: "345" "
s2 = "Token is invalid. DeviceId = deviceId: "123" "
s3 = "Could not send Message."
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个可以在两个字符串之间给出匹配分数的java库,从该分数我可以确定它们是否相似.我的程序只需要处理一个小数据集(~2000字符串).你知道那里有什么东西吗?
从网络驱动器上的目录构建JavaFX项目的速度非常慢.我相信大部分延迟是由构建脚本删除并重新创建整个/ lib目录引起的.这包括超过20 MB的jar文件,对我的项目保持不变.
如何修改ANT构建任务,以便每次构建项目时都不会重新创建此lib文件夹?还有什么办法可以减少构建时间?
构建网络的时间较慢的另一个原因是项目始终从/ dist文件夹运行.对于标准Java SE项目,项目可以从构建目录运行,无需在每次项目运行时在/ dist中创建新的jar文件.
有没有办法从构建目录中的.class文件运行项目而不需要从/ dist运行?
以下是netbeans生成的构建文件:
我需要在不使用 include指令的情况下在JSP中包含内容.
在将容器转换为Servlet 之前,很容易在服务器端包含with,<%@include file="includeMe.htm" %>但是将内容includeMe.htm添加到JSP 中.这意味着如果includeMe.htm被修改,则更改不会反映在生成的Servlet文件中.我厌倦了进入Tomcats生成的文件目录,手动删除生成的java和类文件,或者每次包含的文件更改时重新部署我的应用程序..java
我是否需要编写一个代码块来逐行读取文本文件中的数据,然后像这样写?
<%
while( not done reading from file ) {
String line = scanner.nextLine();
response.getWriter().println(line);
} %>
Run Code Online (Sandbox Code Playgroud)
有更简单或更清洁的方式吗?
我有一个带有键监听器的JList,使用户可以轻松地从列表中删除一个项目.在Windows上,它工作正常.您点击删除键,该项目被删除.在mac上,程序不响应删除键.我正在使用KeyEvent.VK_DELETE,我认为这是一种检测特殊键的平台中立方式.我应该采用不同的方式检测Mac上的按键吗?
studentJList.setModel(studentListModel); // a custom model I wrote
studentJList.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_DELETE) {
studentListModel.remove(studentJList.getSelectedIndex());
studentJList.revalidate();
}
}
@Override
public void keyReleased(KeyEvent e) { }
@Override
public void keyTyped(KeyEvent e) { }
});
Run Code Online (Sandbox Code Playgroud)