Java从文本

时间:2015-05-18 08:39:45

标签: java filter inputstream bufferedreader inputstreamreader

我创建了一个BufferedReader方法,用于打开程序先前创建的文本文件并提取一些字符。我的问题是它提取整行,我想只在指定的字符:之后提取。

这是我的try/catch块:

try {
    InputStream ips = new FileInputStream("file.txt"); 
    InputStreamReader ipsr = new InputStreamReader(ips); 
    BufferedReader br1 = new BufferedReader(ipsr); 

    String ligne;
        while((ligne = br1.readLine()) != null) {
            if(ligne.startsWith("Identifiant: ")) {
                System.out.println(ligne);
                id = ligne;
            }
            if(ligne.startsWith("Pass: ")) {
                System.out.println(ligne);
                pass = ligne;
            }
        }
        System.out.println(ligne);
        System.out.println(id);
        System.out.println(pass);
        br1.close();
    } catch (Exception ex) {
        System.err.println("Error. "+ex.getMessage());
    }

目前,我返回我的String个ID,整个lignepass也一样 - 顺便说一下,所有sysout都是测试,没用那里。

如果有人知道如何在:而不是整行之后发送到ID,我可能搜索不好,但谷歌不是我的朋友。

3 个答案:

答案 0 :(得分:1)

假设字符串中只有一个:符号,您可以使用

ceph osd tree

答案 1 :(得分:0)

使用StringUtils

  

StringUtils.substringAfter(id,“:”),

答案 2 :(得分:0)

为什么不尝试split()上的ligne

如果您使用String[] splittedLigne = ligne.split(":");,则splittedLigne中将包含以下内容:

splittedLigne[0] - >什么在:

之前

splittedLigne[1] - >什么是:

之后

这将为您提供每条线路所需的信息。此外,如果您有多个:,这将适用于您。