Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 MapByteBuffer是否比BufferReader快?_Java - Fatal编程技术网

Java MapByteBuffer是否比BufferReader快?

Java MapByteBuffer是否比BufferReader快?,java,Java,我试图从文本文件中提取特定数据。我使用bufferreader逐行读取文件,以便可以处理该行 下面是我编写的代码: File CAD = new File (filename); try (FileReader fileReader = new FileReader(CAD)) { String bn = CAD.getName(); String[] bn2 = bn.split("\\."); BOARD_NAME= bn2

我试图从文本文件中提取特定数据。我使用bufferreader逐行读取文件,以便可以处理该行

下面是我编写的代码:

File CAD = new File (filename);

    try (FileReader fileReader = new FileReader(CAD)) 
    {
        String bn = CAD.getName();
        String[] bn2 = bn.split("\\.");
        BOARD_NAME= bn2[0];
        StringBuilder PACKAGE = new StringBuilder(),
        GRAPHIC = new StringBuilder(),
        PADS_DIA = new StringBuilder(),
        PADS = new StringBuilder(),
        COMPONENTS = new StringBuilder();
        try (BufferedReader bufferedReader = new BufferedReader(fileReader))
        {
            String line;

            while ((line = bufferedReader.readLine()) != null) 
            {
                if (line.startsWith("J!")) 
                {
                    String[] units = line.split("!");
                    UNITS = units[8];

                } 

                else if (line.startsWith("A!REFDES!COMP_CLASS!")) 
                {

                    while (!"A!NET_NAME!REFDES!PIN_NUMBER!PIN_NAME!PIN_GROUND!PIN_POWER!".equals(line = bufferedReader.readLine())) 
                    {
                        if (line.startsWith("S!")) 
                        {
                            String[] data = line.split("!");
                            COMPONENTS.append(data[1])
                                .append("!")
                                .append(data[8])
                                .append("!")
                                .append(data[10])
                                .append("!")
                                .append(data[11])
                                .append("!")
                                .append(data[12])
                                .append("\n");


                        }
                    }


                } 

                else if (line.startsWith("A!PAD_NAME")) 
                {

                    do 
                    {   

                        if (line.startsWith("S!") && line.contains("00001")) 
                        {
                            String[] data = line.split("!");
                            if ("CIRCLE".equals(data[6])) 
                            {
                                PADS.append(data[1])
                                    .append("!C!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!TOP")
                                    .append("\n");

                            } 

                            else if (data[6].equals("")) 
                            {
                                PADS.append(data[1])
                                    .append("!0!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!TOP")
                                    .append("\n");
                            }

                            else 
                            {
                                PADS.append(data[1])
                                    .append("!R!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!TOP")
                                    .append("\n");
                            }
                        } 

                        else if (line.startsWith("S!") && line.contains("BOTTOM")) 
                        {
                            String[] data = line.split("!");
                            if ("CIRCLE".equals(data[6])) 
                            {
                                PADS.append(data[1])
                                    .append("!C!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!BOTTOM")
                                    .append("\n");
                            } 

                            else if (data[6].equals("")) 
                            {
                                PADS.append(data[1])
                                    .append("!0!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!BOTTOM")
                                    .append("\n");
                            }    

                            else 
                            {
                                PADS.append(data[1])
                                    .append("!R!")
                                    .append(data[7])
                                    .append("!")
                                    .append(data[8])
                                    .append("!BOTTOM")
                                    .append("\n");
                            }


                        } 

                        else if (line.startsWith("S!") && line.contains("~DRILL")) 
                        {

                            String[] data = line.split("!");
                            PADS_DIA.append(data[1])
                                .append("!")
                                .append(data[6])
                                .append("\n");

                        }

                    }while (!"A!GRAPHIC_DATA_NAME!GRAPHIC_DATA_NUMBER!RECORD_TAG!GRAPHIC_DATA_1!GRAPHIC_DATA_2!GRAPHIC_DATA_3!GRAPHIC_DATA_4!GRAPHIC_DATA_5!GRAPHIC_DATA_6!GRAPHIC_DATA_7!GRAPHIC_DATA_8!GRAPHIC_DATA_9!SUBCLASS!SYM_NAME!REFDES!".equals(line = bufferedReader.readLine()));           
                } 

                if (line.startsWith("A!SYM_NAME!"))                
                {
                    int k =0,j=0;
                    String[] data1 = line.split("!");
                    for (int i =0; i<data1.length;i++)
                    {
                        if (data1[i].equals("PIN_NUMBER"))
                        {
                            k=i;
                        }
                        else if (data1[i].equals("PIN_ROTATION"))
                        {
                            j=i;
                        }
                    }
                    while(!"A!VIA_X!VIA_Y!PAD_STACK_NAME!NET_NAME!TEST_POINT!".equals(line = bufferedReader.readLine()))
                    {  
                        if (line.startsWith("S!")) 
                        {
                            String[] data = line.split("!");
                            if (data[8].equals("")||data[8]==null)
                            {}
                            else
                            {
                                PACKAGE.append(data[1])
                                    .append("!")
                                    .append(data[k])
                                    .append("!")
                                    .append(data[k+1])
                                    .append("!")
                                    .append(data[k+2])
                                    .append("!")
                                    .append(data[k+3])
                                    .append("!")
                                    .append(data[k+4])
                                    .append("!")
                                    .append(data[j])
                                    .append("\n");                      
                            }
                        }
                    }


                }

                else if (line.startsWith("A!CLASS!SUBCLASS!GRAPHIC_DATA_NAME!"))
                {          

                    while (!"A!SUBCLASS!PAD_SHAPE_NAME!GRAPHIC_DATA_NAME!GRAPHIC_DATA_NUMBER!RECORD_TAG!GRAPHIC_DATA_1!GRAPHIC_DATA_2!GRAPHIC_DATA_3!GRAPHIC_DATA_4!GRAPHIC_DATA_5!GRAPHIC_DATA_6!GRAPHIC_DATA_7!GRAPHIC_DATA_8!GRAPHIC_DATA_9!PAD_STACK_NAME!REFDES!PIN_NUMBER!".equals(line = bufferedReader.readLine()))
                    {
                        if (line.startsWith("S!BOARD GEOMETRY!OUTLINE")) 
                        {
                            //to find the diamension x and y of board
                            String data[]=line.split("!");
                            double valuex = Double.parseDouble(data[6]);
                            double valuey = Double.parseDouble(data[7]);
                            PANEL_X.add(valuex);
                            PANEL_Y.add(valuey);

                        }

                        else if (line.startsWith("S!REF DES"))
                        {
                            String data[] = line.split("!");
                            if (data[2].equals("ASSEMBLY_TOP")||data[2].equals("DISPLAY_TOP"))
                            {
                                GRAPHIC.append(data[12])
                                    .append("!")
                                    .append("TOP")
                                    .append("\n");
                            }

                            else if(data[2].equals("ASSEMBLY_BOTTOM")||data[2].equals("DISPLAY_BOTTOM"))
                            {
                                GRAPHIC.append(data[12])
                                   .append("!")
                                   .append("BOTTOM")
                                   .append("\n"); 
                            }
                        }
                    }


                    double max_x = max(PANEL_X);
                    double min_x = min(PANEL_X);
                    double max_y = max(PANEL_Y);
                    double min_y = min(PANEL_Y);
                    double diamensionx = max_x - min_x;
                    double diamensiony = max_y - min_y;
                    MIN_X = min_x;
                    MIN_Y = min_y;
                    BOARD_X = diamensionx;
                    BOARD_Y = diamensiony;
                    BOARD_Z = 62.9921;

                }

                ArrayList<String> $TEMP_LIST = new ArrayList<>(asList(GRAPHIC.toString().split("\n")));
                HashSet<String> graphic = new HashSet<>($TEMP_LIST);
                GRAPHIC_LIST = new ArrayList<>(graphic);
                PACKAGE_LIST = new ArrayList<>(asList(PACKAGE.toString().split("\n")));
                PADS_LIST = new ArrayList<>(asList(PADS.toString().split("\n")));
                PADS_DIA_LIST = new ArrayList<>(asList(PADS_DIA.toString().split("\n")));
                COMPONENTS_LIST = new ArrayList<>(asList(COMPONENTS.toString().split("\n")));           
            }

        }                
        fileReader.close();
        }
文件CAD=新文件(文件名);
try(FileReader FileReader=newfilereader(CAD))
{
字符串bn=CAD.getName();
字符串[]bn2=bn.split(\\);
董事会名称=bn2[0];
StringBuilder包=新的StringBuilder(),
GRAPHIC=新的StringBuilder(),
焊盘直径=新的StringBuilder(),
PADS=新的StringBuilder(),
COMPONENTS=新的StringBuilder();
try(BufferedReader BufferedReader=新的BufferedReader(文件阅读器))
{
弦线;
而((line=bufferedReader.readLine())!=null)
{
if(line.startsWith(“J!”)
{
字符串[]单位=行。拆分(!”;
单位=单位[8];
} 
else if(line.startsWith(“A!REFDES!COMP_CLASS!”)
{
而(!“A!NET_NAME!REFDES!PIN_NUMBER!PIN_NAME!PIN_GROUND!PIN_POWER!”。等于(line=bufferedReader.readLine())
{
if(line.startsWith(“S!”)
{
String[]data=line.split(“!”);
COMPONENTS.append(数据[1])
.append(“!”)
.append(数据[8])
.append(“!”)
.append(数据[10])
.append(“!”)
.append(数据[11])
.append(“!”)
.append(数据[12])
.append(“\n”);
}
}
} 
else if(line.startsWith(“A!PAD_NAME”))
{
做
{   
if(line.startsWith(“S!”)&line.contains(“00001”))
{
String[]data=line.split(“!”);
如果(“圆”。等于(数据[6]))
{
PADS.append(数据[1])
.append(“!C!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!TOP”)
.append(“\n”);
} 
else if(数据[6]。等于(“”)
{
PADS.append(数据[1])
.append(“!0!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!TOP”)
.append(“\n”);
}
其他的
{
PADS.append(数据[1])
.append(“!R!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!TOP”)
.append(“\n”);
}
} 
else if(line.startsWith(“S!”)&line.contains(“底部”))
{
String[]data=line.split(“!”);
如果(“圆”。等于(数据[6]))
{
PADS.append(数据[1])
.append(“!C!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!BOTTOM”)
.append(“\n”);
} 
else if(数据[6]。等于(“”)
{
PADS.append(数据[1])
.append(“!0!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!BOTTOM”)
.append(“\n”);
}    
其他的
{
PADS.append(数据[1])
.append(“!R!”)
.append(数据[7])
.append(“!”)
.append(数据[8])
.append(“!BOTTOM”)
.append(“\n”);
}
} 
else if(line.startsWith(“S!”)&&line.contains(“~DRILL”))
{
String[]data=line.split(“!”);
焊盘直径附加(数据[1])
.append(“!”)
.append(数据[6])
.append(“\n”);
}
}while(!“A!图形数据名称!图形数据编号!记录标签!图形数据1!图形数据2!图形数据3!图形数据4!图形数据6!图形数据7!图形数据8!图形数据9!子类!符号名称!REFDES!”。等于(line=bufferedReader.readLine());
}
public String[] split(String regex, int limit) {
    return Pattern.compile(regex).split(this, limit);
}
Pattern pattern = Pattern.compile("!");
Pattern patternNL = Pattern.compile("\n");
String[] parts  = pattern.split(line);
String[] singleLines = patternNL.split(lines);