Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-从列表中查找匹配对_Java_Sorting - Fatal编程技术网

Java-从列表中查找匹配对

Java-从列表中查找匹配对,java,sorting,Java,Sorting,背景: 我需要在正在使用的服务器上对进程进行负载测试。我正在做的是在客户端创建一组文件,并将它们上传到服务器。服务器正在监视新文件(在输入目录中,文件名是唯一的),一旦有一个新文件,它将处理它,一旦完成,它将创建一个与输出目录同名但扩展名不同的响应文件。如果处理失败,它会将传入文件放入error dir。我正在使用监视服务器上的更改,它输出: 10:48:47 /path/to/in/ CREATE ABCD.infile1 10:48:55 /path/to/out/ CREATE ABCD.

背景: 我需要在正在使用的服务器上对进程进行负载测试。我正在做的是在客户端创建一组文件,并将它们上传到服务器。服务器正在监视新文件(在输入目录中,文件名是唯一的),一旦有一个新文件,它将处理它,一旦完成,它将创建一个与输出目录同名但扩展名不同的响应文件。如果处理失败,它会将传入文件放入error dir。我正在使用监视服务器上的更改,它输出:

10:48:47 /path/to/in/ CREATE ABCD.infile1
10:48:55 /path/to/out/ CREATE ABCD.outfile1

问题: 我需要解析所有结果的列表(计划在java中实现),就像这样,我获取内嵌并将其与相同的文件名(在ERR或OUT中找到)匹配,计算所花费的时间并指出它是否成功。我的想法是创建3个列表(in、out、err)并尝试解析,比如(在伪代码中)

问题:
这有效吗?还是有更好的方法来处理这种情况?无论如何,你可能会认为这是一个代码,你只执行了一次,为什么要挣扎,但我真的想知道如何正确处理这个问题

使用列表的解决方案是有问题的,因为您必须使它们与驱动器的状态正确同步,并始终加载它们。更重要的是,您将在某一点上达到存储在单个位置的文件的容量限制

您可以选择使用i/OAPI进行检查,或者引入一个中间数据库来存储您的值

另一种方法是数据库,您将在其中存储有关文件实际拥有的密钥和物理路径的信息

如果我是你的话,我会从I/OAPI开始,设计一个简单的接口,如果解决方案效率低下的话,这个接口可以在将来被替换

您可以使用“UserDefinedfileAttributeView”概念。 创建您自己的文件属性,比如“Result”,并为in dir中的文件相应地设置其值。如果文件移动到OUT dir,“结果”=“成功”,如果文件移动到ERR dir,“结果”=“错误” 我尝试了下面的代码,希望能有所帮助

public static void main(String[] args) {

    try{
    Path file = Paths.get("C:\\Users\\rohit\\Desktop\\imp docs\\Steps.txt");
    UserDefinedFileAttributeView userView = Files.getFileAttributeView(file, UserDefinedFileAttributeView.class);
    String attribName  = "RESULT";
    String attribValue = "SUCCESS";
    userView.write(attribName, Charset.defaultCharset().encode(attribValue));

    List<String> attribList = userView.list();
    for (String s : attribList) {            
        ByteBuffer buf = ByteBuffer.allocate(userView.size(s));
        userView.read(s, buf);
        buf.flip();
        String value = Charset.defaultCharset().decode(buf).toString();
        if("SUCCESS".equals(value)){
            System.out.print(String.format("User defined attribute: %s", s));
            System.out.println(String.format("; value: %s", value));
            }
        }
    }
    catch(Exception e){

    }
publicstaticvoidmain(字符串[]args){
试一试{
Path file=Path.get(“C:\\Users\\rohit\\Desktop\\imp docs\\Steps.txt”);
UserDefinedFileAttributeView用户视图=Files.getFileAttributeView(文件,UserDefinedFileAttributeView.class);
字符串attribName=“结果”;
字符串attribValue=“成功”;
write(attribName,Charset.defaultCharset().encode(attribValue));
List attribList=userView.List();
对于(字符串s:attribList){
ByteBuffer buf=ByteBuffer.allocate(userView.size);
userView.read(s,buf);
buf.flip();
字符串值=Charset.defaultCharset().decode(buf.toString();
如果(“成功”。等于(价值)){
系统输出打印(字符串格式(“用户定义属性:%s”,s));
System.out.println(String.format(“;值:%s”,值));
}
}
}
捕获(例外e){
}
您可以对放入目录中的每个文件执行此操作

inList
outList
errList

for item : inList
   if outlist.contains(item) parse;
   else if errList.contains(item) parse;
   else error;
public static void main(String[] args) {

    try{
    Path file = Paths.get("C:\\Users\\rohit\\Desktop\\imp docs\\Steps.txt");
    UserDefinedFileAttributeView userView = Files.getFileAttributeView(file, UserDefinedFileAttributeView.class);
    String attribName  = "RESULT";
    String attribValue = "SUCCESS";
    userView.write(attribName, Charset.defaultCharset().encode(attribValue));

    List<String> attribList = userView.list();
    for (String s : attribList) {            
        ByteBuffer buf = ByteBuffer.allocate(userView.size(s));
        userView.read(s, buf);
        buf.flip();
        String value = Charset.defaultCharset().decode(buf).toString();
        if("SUCCESS".equals(value)){
            System.out.print(String.format("User defined attribute: %s", s));
            System.out.println(String.format("; value: %s", value));
            }
        }
    }
    catch(Exception e){

    }