当前位置: 代码迷 >> J2SE >> 文件内容的读取
  详细解决方案

文件内容的读取

热度:142   发布时间:2016-04-24 00:38:15.0
求助文件内容的读取
我是java新手 求助一些java的典型读取文件的问题

首先我有2个文件

第一个每一行是这样的AOI21 g799(.A (encoder_in[10]), .B (n_44), .C (n_56), .Q (n_62));

要把AOI21 encoder_in[0] n_44 n_56还有n62 读取出来存放到string里 什么办法是比较快速的 


另外一种这样的
OA311 5 1 3 0

要把AO311放string 数字放分别int里  

不胜感激

------解决方案--------------------
第一个文件的参数个数是变长的,处理起来稍麻烦点,供参考:

Java code
    public static void main(String[] args) {        String[] lines = { "NOR3 g836(.A (n_18), .B (n_42), .C (n_22), .Q (n_29));", "BUF g837(.A (n_25), .Q (n_21));",                "NAND3 g838(.A (n_17), .B (n_20), .C (n_19), .Q (n_25));", "BUF g840(.A (n_17), .Q (n_18));",                "NAND2 g843(.A (n_15), .B (n_11), .Q (n_23));",                "NOR3 g841(.A (n_14), .B (encoder_in[13]), .C (encoder_in[5]), .Q (n_17));",                "BUF g844(.A (n_22), .Q (n_15));", "NAND2 g847(.A (n_13), .B (n_1), .Q (n_14));",                "NAND2 g845(.A (n_12), .B (n_8), .Q (n_22));", "NAND2 g846(.A (n_11), .B (n_6), .Q (n_42));",                "BUF g848(.A (n_13), .Q (n_10));" };        Pattern pat = Pattern.compile("\\.\\w\\s*\\(([^\\)]*)");        for (String str : lines) {            ArrayList<String> lst = new ArrayList<String>();            int pos = str.indexOf(32);            String name = str.substring(0, pos); // 取开头的名字            lst.add(name);            Matcher m = pat.matcher(str); // 借助正则表达式循环定位:括号中的参数            while (m.find()) {                lst.add(m.group(1));            }            System.out.println(lst);                        String[] results = lst.toArray(new String[0]); // 转成你需要的字符串数组        }    }
  相关解决方案