使用Java的I/O方法读取相对较大的文件的最快方法是什么?我当前的解决方案使用BufferedInputStream保存到分配了1024字节的字节数组.然后将每个缓冲区保存在以ArrayList供以后使用.整个过程通过一个单独的线程(可调用接口)调用.
虽然不是很快.
ArrayList<byte[]> outputArr = new ArrayList<byte[]>();
try {
BufferedInputStream reader = new BufferedInputStream(new FileInputStream (dir+filename));
byte[] buffer = new byte[LIMIT]; // == 1024
int i = 0;
while (reader.available() != 0) {
reader.read(buffer);
i++;
if (i <= LIMIT){
outputArr.add(buffer);
i = 0;
buffer = null;
buffer = new byte[LIMIT];
}
else continue;
}
System.out.println("FileReader-Elements: "+outputArr.size()+" w. "+buffer.length+" byte each.");
Run Code Online (Sandbox Code Playgroud) 我想使用node.js查询mySQL数据库,并将结果作为JSON返回,以便在移动应用程序中使用.不幸的是,我的请求只是排序超时,服务器在2分钟内没有做任何事情,直到日志文件显示我的console.log()-statements.
此外,回调不会返回任何结果.它只是空的.
// Check dependencies
var http = require('http');
// Create the http server.
// reference: http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/
http.createServer(function(request, response) {
// Attach listener on end event.
request.on('close', function() {
console.log('request');
// run asynchronous
getSQL(function(err, result) {
console.log('json:', result);
response.writeHead(200, {
'Content-Type' : 'x-application/json'
});
// Send data as JSON string.
response.end(result);
});
});
}).listen(3000);
// Access MySQL via node-mysql
// https://github.com/felixge/node-mysql
function getSQL(callback) {
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'user', …Run Code Online (Sandbox Code Playgroud) 是否可以在C#的WPF工具包(或者其他任何WPF类)中扩展"Page"类?我试图做的:
public class ExtendedPage : Page{
protected void doStuff(){
// lots of joy n pleasure
}
}
public partial class RandomWindow : ExtendedPage{
private void randomMethod(){
doStuff(); // causes error
}
}
Run Code Online (Sandbox Code Playgroud)
我问的原因很明显:在扩展Page-class(ExtendedPage)之后,子类(RandomWindow)无法访问其基类的方法.这是(至少是我的猜测)由RandomWindow偏离的情况引起的.由于这个类不幸是由WPF生成的(链接到相应的*.xaml),我无法找到部分类的其他部分.
这个问题可能导致一个非常明显的答案,让我看起来像一个完全白痴,但显然我无法弄清楚.我可能会补充一点,我刚刚开始使用C#,我的编程起源是Java.
确切的错误消息是"'type'的部分声明不能指定不同的基类"(CS0263).
作为对其中一条评论的回应:*.xaml中的"Page"声明似乎生成了一个代码隐藏文件,其基类是"Page"(而不是ExtendedPage).改变这似乎也不起作用,编译器抱怨没有找到类型的ExtendedPage.
<Page x:Class="...RandomWindow" ... />
// to
<src:ExtendedPage x:class="...RandomWindow"
xlmns:src="...ExtendedPage" />
Run Code Online (Sandbox Code Playgroud) Delphi 2007中是否有任何集成解决方案来检查TStringList是否包含某个值的一部分?
例如:
List.AddObject('This is a string', customStringObject1);
List.AddObject('This is a mushroom', customStringObject2);
List.AddObject('Random stuff', customStringObject3);
Run Code Online (Sandbox Code Playgroud)
搜索"这是一个"应该给我"真实",因为前两个元素包含这个部分.
到目前为止我唯一知道的方法是TStringList.find(string,integer),但这会执行完整的字符串比较,即只搜索这是一个字符串将返回true.
有什么建议?
<uses-sdk android:minSdkVersion="7" />
<application
android:description="@string/app_description"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light" >
<activity
android:name="com.xyz.Main.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
Lint 工具告诉我我的活动没有在清单中注册,如果我尝试运行它,LogCat 会告诉我:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.name/com.xyz.Main.MainActivity}: java.lang.ClassNotFoundException: com.xyz.Main.MainActivity
这让我抓狂,我重新安装了 Eclipse 并将 SDK 和其他东西更新到 API 级别 17,现在我似乎无法执行我自己的应用程序。我完全不知道这里到底出了什么问题,显然该活动在 manifest.xml 中完全注册。
提前致谢。
我使用命名管道进行 C# 和 Delphi 之间的过程间通信。C# 使用该System.IO.Pipes包,而 Delphi 使用Libby's pipes.pas. 不幸的是,通信几乎是高性能的:分析显示通信占用了整个运行时间的 72%,其余的用于计算。
我找到了一个可能占用资源的问题:如果我没有在 Delphi 中显式断开发送客户端的连接,C# 根本不会接收任何数据。
FClient1.Write(msg[1], Length(msg));
FClient1.FlushPipeBuffers;
FClient1.WaitForReply(20);
FClient1.Disconnect; // disconnect to signalize C# that the writing is finished
FClient1.Connect; // connect again to prevent synchronization problems
Run Code Online (Sandbox Code Playgroud)
// Wait for a client to connect
stc.pipeServer.WaitForConnection();
while (reconnect_attempts < MAX_RECONNECT_ATTEMPTS) //
{
string tmp = sr.ReadLine();
// if result is empty, try again for <MAX_RECONNECT_ATTEMPTS> times
// so you can eliminate the …Run Code Online (Sandbox Code Playgroud) 我正在寻找Delphi中CreateProcess的快速替代方法来在exe中执行某些计算,包括XML中的几个返回值.目前,我正在使用某些参数调用C#-exe.其中一个电话约需要.0.5秒-这是方式昂贵,因为此exe需要调用几百次(unfortunatley反复调用,即多线程不会加快工作).
我当前的代码看起来像这样(找到解决方案来获取StackOverflow上的exe somwhere的控制台输出).
IsExecutable := CreateProcess(
nil,
PChar(WorkDir + Exe + CommandLine),
nil,
nil,
True,
HIGH_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInformation);
CloseHandle(StdOutPipeWrite);
if IsExecutable then
try
repeat
WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
if BytesRead > 0 then
begin
Buffer[BytesRead] := #0;
Result := Result + Buffer;
end;
until not WasOK or (BytesRead = 0);
WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
finally
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
end
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我不是很好的德尔福 - 实际上,我觉得"我不知道我在做什么"的狗咪模因......
每次我尝试访问文档的根时,以下代码都会抛出"InvalidPointer"异常XMLDocument.DocumentElement;.
begin
XMLDocument := TXMLDocument.Create(nil); // nil since we don't need an owner
AStream := TStream.Create; // stream for output as string
XMLDocument.loadFromXML(xml);// load string
if NOT (XMLDocument.IsEmptyDoc) then
begin
XMLDocument.Active := true; // actually automatically done by 'loadFromXML'
// get document root
HeadNode := XMLDocument.DocumentElement;
// add <id>-element, set ID as text
idNode := HeadNode.AddChild(XML_ID_PLAIN);
idNode.Text := id;
// ...
end;
end;
Run Code Online (Sandbox Code Playgroud)
传递给的字符串"xml" loadFromXML(string)是有效的XML,但XMLDocument的属性"XML"和"DOMDocument"始终是nil,即使对象本身和它的"IsEmptyDoc"属性都不是.德尔福版本仍然是2007年.
有谁知道是什么原因引起的?提前致谢.
我一直在尝试设置一个简单的socket.io示例,但它拒绝正常工作.客户端在Apache2上运行,应该通过端口3000访问node.js-server.
似乎没有任何连接,并且服务器是否实际运行似乎并不重要 - 如果在服务器($ kill xyz)上手动停止node.js-process ,我的客户端控制台不会抛出任何错误.当应用程序运行(info - socket.io started)时,会出现完全相同的结果.
服务器:
// Check dependencies & setup backend
var express = require('express');
var server = express();
var http = require('http');
var app = http.createServer(server); // somehow needed? ("Socket.IO's `listen()` method expects an `http.Server` instance as its first parameter.")
var socket = require('socket.io');
// listen @ port 3000 as definied by proxy
server.listen(3000);
// listen w/ socket.io as well
var io = socket.listen(app);
...
// …Run Code Online (Sandbox Code Playgroud) delphi ×4
c# ×2
javascript ×2
node.js ×2
performance ×2
android ×1
apache ×1
compare ×1
delphi-2007 ×1
exe ×1
express ×1
file-io ×1
find ×1
inheritance ×1
io ×1
java ×1
json ×1
mysql ×1
named-pipes ×1
pascal ×1
polymorphism ×1
root ×1
socket.io ×1
tstringlist ×1
txmldocument ×1
wpf ×1
xaml ×1
xml ×1