小编ott*_*uit的帖子

在Java中读取相对较大的字节文件的最快方法

使用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)

java performance file-io

13
推荐指数
1
解决办法
2万
查看次数

node.js + MySQL&JSON-result - 回调问题并且没有对客户端的响应

我想使用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)

javascript mysql json node.js

13
推荐指数
1
解决办法
3万
查看次数

扩展页面类

是否可以在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)

c# polymorphism wpf inheritance xaml

6
推荐指数
1
解决办法
2285
查看次数

Delphi:TStringList.Contains?

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.

有什么建议?

delphi compare tstringlist find

6
推荐指数
2
解决办法
1万
查看次数

Android:活动未在清单中注册

<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 中完全注册。

提前致谢。

android runtimeexception android-activity

5
推荐指数
1
解决办法
2万
查看次数

命名管道性能问题

我使用命名管道进行 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)

C#(接收)

// 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)

c# delphi io named-pipes

5
推荐指数
1
解决办法
5013
查看次数

CreateProcess的快速替代品

我正在寻找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)

顺便说一下,我不是很好的德尔福 - 实际上,我觉得"我不知道我在做什么"的狗咪模因......

delphi performance pascal exe createprocess

2
推荐指数
1
解决办法
3000
查看次数

Delphi:尝试访问XMLDocument时的EInvalidPointer

每次我尝试访问文档的根时,以下代码都会抛出"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年.

有谁知道是什么原因引起的?提前致谢.

xml delphi root delphi-2007 txmldocument

2
推荐指数
1
解决办法
1863
查看次数

node.js + socket.io + express.js:没有连接

我一直在尝试设置一个简单的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)

javascript apache node.js express socket.io

2
推荐指数
1
解决办法
2万
查看次数