我有一个线程从缓冲读取器读取字符(从套接字创建如下):
inputStream = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
此代码只能运行一次.例如,如果客户端连接并发送:"这是一个测试"和"这是另一个测试",则主机输出为:
Reading from stream:
Chars read from stream: 16
This is a test
Reading from stream:
Run Code Online (Sandbox Code Playgroud)
请注意,程序不会收到"这是另一个测试",因为它一直在读取流.有没有办法处理这个而不减少缓冲区大小?这是线程的代码:
public void run() {
boolean dataRecieved = false;
char[] inputChars = new char[1024];
int charsRead = 0;
while (!stopNow) {
try {
Thread.sleep(getDataDelay);
//Read 1024 characters. Note: This will pause the thread when stream is empty.
System.out.println("Reading from stream:");
charsRead = inputStream.read(inputChars); //<< THIS LINE IS PAUSING THE THREAD!>
if ((charsRead = inputStream.read(inputChars)) != -1)
{
System.out.println("Chars …
Run Code Online (Sandbox Code Playgroud) 我正在通过套接字发送bufferedImage,我正在使用此帖子中的示例:
寄件人
BufferedImage image = ....;
ImageIO.write(image, "PNG", socket.getOutputStream());
Run Code Online (Sandbox Code Playgroud)
接收器
BufferedImage image = ImageIO.read(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)
它工作 - 如果,只有在这一行之后我关闭发送者的outputStream:
ImageIO.write(image, "PNG", socket.getOutputStream());
Run Code Online (Sandbox Code Playgroud)
除了关闭outputStream之外我还能做些什么吗?
另外,我还能做些什么来避免一共使用ImageIO吗?似乎需要很长时间才能做任何事情.另请注意,由于性能问题,应该不惜一切代价避免读取或写入硬盘.我需要尽可能快地进行这种传输,(我正在尝试并尝试创建类似于VNC的客户端并将每个屏幕截图保存到硬盘上会大大减慢一切)
@Jon Skeet
编辑3:
发件人:(请注意,我发送的JPG图像不是PNG).
int filesize;
OutputStream out = c.getClientSocket().getOutputStream();
ByteArrayOutputStream bScrn = new ByteArrayOutputStream();
ImageIO.write(screenshot, "JPG", bScrn);
byte[] imgByte = bScrn.toByteArray();
bScrn.flush();
bScrn.close();
filesize = bScrn.size();
out.write(new String("#FS " + filesize).getBytes()); //Send filesize
out.write(new String("#<IM> \n").getBytes()); //Notify start of image
out.write(imgByte); //Write file
System.out.println("Finished");
Run Code Online (Sandbox Code Playgroud)
收件人:( input
套接字输入流在哪里)
尝试#1:
String str = input.toString();
imageBytes = …
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows 7和Aero,并且有一个非常快的显卡(Radeon 6870),我用它来玩游戏.
调整我使用java制作的非常简单的程序时,我遇到了一些问题.例如,这个程序绝对没有.它没有动作侦听器,没有循环.它只是一个带按钮的GUI界面.
大约需要一秒钟来调整组件的大小.对我来说非常明显.
我试图启用OpenGl加速来解决这个问题.我编译了JAR并运行它java -Dsun.java2d.opengl=true -jar C:\Test.jar
.结果是窗口周围的黑色区域略微减少,但更多的是闪烁.实际上,闪烁在上面的屏幕截图中显示为灰色.
不,Eclipse,Netbeans,Chrome和其他应用程序已经过测试.没有这个问题.因此,我必须得出结论,代码必定存在一些问题.各种各样的人都运行了这段代码并说他们有"没有问题".如果您要测试它,请确保您将窗口从最小尺寸调整到最大尺寸,同时以圆周运动移动鼠标.
import java.awt.*;
import javax.swing.*;
public class JFrameWithButtonsTest {
private int iScreen = 25;
private int iLocation = 10;
JFrame frame = new JFrame();
Container contentPane = frame.getContentPane();
public JFrameWithButtonsTest() {
JPanel northButtonPanel = new JPanel();
northButtonPanel.setLayout(new GridLayout(2,2));
northButtonPanel.add(new JButton(" I do nothing"));
northButtonPanel.add(new JButton(" I do nothing"));
northButtonPanel.add(new JButton(" I do nothing"));
northButtonPanel.add(new JButton(" I do nothing"));
contentPane.add(northButtonPanel, BorderLayout.NORTH);
JPanel southButtonPanel …
Run Code Online (Sandbox Code Playgroud) 可能重复:
JTable滚动到指定的行索引
我有一个JTable,我在程序上需要使用以下代码选择一行:
myTable.setRowSelectionInterval(i, j);
Run Code Online (Sandbox Code Playgroud)
(其中i和j分别是有效的行号和列号).
问题是,当你跳到一行时,JScrollPane不会移动.在这种情况下,表格很长,并且通常在屏幕上看不到"选定行",因此用户必须手动上/下滚动才能找到它.我想知道如何让JScrollPane自动跳转到该行的特定位置.
编辑:找到这一个可以做到这一点的班轮:
table.scrollRectToVisible(table.getCellRect(row,0, true));
Run Code Online (Sandbox Code Playgroud) 对于所有Visual Studio ASP.Net MVC开发人员 - 我确信您之前遇到过这个问题:
在我的每个控制器中,通常都有索引,创建,编辑和详细信息视图.ASP.Net的脚手架生成的所有默认视图文件都具有相同的名称,例如:index.cshtml
.当然,他们在不同的文件夹中.
因此,当您打开四个或五个选项卡时,很容易迷失在Visual Studio中,所有选项卡都具有相同的名称!是否有方法/插件让visual studio向我展示更有意义的东西,比如控制器名称/视图文件夹?或者,开发人员只是在生成文件后重命名所有文件?如果可能的话,我已经有resharper所以奖励分数.
我有一个typescript类,它具有以下属性:
export class apiAccount {
private _balance : apiMoney;
get balance():apiMoney {
return this._balance;
}
set balance(value : apiMoney) {
this._balance = value;
}
private _currency : string;
get currency():string {
return this._currency;
}
set currency(value : string) {
this._currency = value;
}
...
Run Code Online (Sandbox Code Playgroud)
我需要创建这个类的空白实例:
let newObj = new apiAccount();
Run Code Online (Sandbox Code Playgroud)
然后检查它是否具有"货币"的设置器.我认为这正是getOwnPropertyDescriptor
这样,但显然我错了:
Object.getOwnPropertyDescriptor(newObj, 'currency')
Object.getOwnPropertyDescriptor(newObj, '_currency')
Run Code Online (Sandbox Code Playgroud)
这两个都返回undefined.但铬似乎做到了!当我将鼠标悬停在实例上时,它会向我显示属性,并将它们显示为未定义.如何获取这些属性名称的列表,或检查对象中是否存在属性描述符?
当您键入文本框并按住某个键时,您将获得(a ....... aaaaaaaaaaaaaa),具体取决于初始按键延迟.
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
// Handle key press here
}
Run Code Online (Sandbox Code Playgroud)
我正在创建一个用户反应非常重要的游戏.如何完全消除这种延迟?上面的代码不起作用.我也尝试重写processKeyEvent而没有运气.
我有一个包含两个或更多数字的字符串.这里有一些例子:
"(1920x1080)"
" 1920 by 1080"
"16 : 9"
Run Code Online (Sandbox Code Playgroud)
如何从中提取单独的数字,如"1920"和"1080",假设它们只是由一个或多个非数字字符分隔?
为什么:
string s = "";
bool sCanBeNull = (s is Nullable);
s = null;
Run Code Online (Sandbox Code Playgroud)
sCanBeNull
等于假?
我正在编写代码生成器,并且需要确保传递给它的每个类型都可以为空(如果还没有).
//Get the underlying type:
var type = field.FieldValueType;
//Now make sure type is nullable:
if (type.IsValueType)
{
var nullableType = typeof (Nullable<>).MakeGenericType(type);
return nullableType.FullName;
}
else
{
return type.FullName;
}
Run Code Online (Sandbox Code Playgroud)
我是否需要明确检查字符串或我错过了什么?
在SharePoint Server端代码中,您可以编写如下内容:
field.fieldvalueType
Run Code Online (Sandbox Code Playgroud)
有时会给你类型(DateTime,或其他).令人讨厌的是,有时,它只返回Null(例如,ID字段).
在CSOM中,您没有该字段.但是,有以下TypeAsString
类型的SharePoint类型:
当我知道我正在处理"整数"字段时,提取"Int32",并从SharePoint的注释中提取"System.String".
这种方法有效,但它是所有黑客的母亲:
var myTempItem = list.AddItem(new ListItemCreationInformation());
myTempItem.Update();
context.ExecuteQuery();
context.Load(myTempItem);
context.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)
创建后,您可以使用:
myTempItemCreated[fieldImTryingToGetTypeOf.Title].GetType().FullName
- > Gives-> System.Int32
现在,做到这一点的正确方法是什么?我只是希望答案不是十英尺长的开关案例声明.
java ×5
c# ×4
swing ×3
.net ×2
sockets ×2
2d ×1
asp.net-mvc ×1
awt ×1
buffer ×1
csom ×1
javascript ×1
jframe ×1
jscrollpane ×1
jtable ×1
keyboard ×1
networking ×1
regex ×1
typescript ×1