Java 如何在给定搜索中加载相应的数据

Java 如何在给定搜索中加载相应的数据,java,arrays,string,search,java-io,Java,Arrays,String,Search,Java Io,我已经制作了一个程序,将输入的数据保存在文本字段中。它的保存技术是这样的 data0 = student number data1 = name data2 = section data3 = cp data4 = email data5 = address 在保存的文件中: data0 | data1 | data2 | data3 | data4 | data5 data0 | data1 | data2 | data3 | data4 | data5 data0 | data1 | da

我已经制作了一个程序,将输入的数据保存在文本字段中。它的保存技术是这样的

data0 = student number
data1 = name
data2 = section
data3 = cp
data4 = email
data5 = address
在保存的文件中:

data0 | data1 | data2 | data3 | data4 | data5
data0 | data1 | data2 | data3 | data4 | data5
data0 | data1 | data2 | data3 | data4 | data5
data0 | data1 | data2 | data3 | data4 | data5
data0 | data1 | data2 | data3 | data4 | data5
数据0具有唯一性, 这是我用来搜索学号“data0”的代码 例如,如果我搜索12293

data0 | data1 | data2 | data3 | data4 | data5
data0 | data1 | data2 | data3 | data4 | data5
12293 | blahh | blehh | blihh | blohh | bluhh
data0 | data1 | data2 | data3 | data4 | data5
第3行有一个匹配,等等,等等,等等,等等,必须在不同的文本区域打印

但我不知道在搜索有匹配项时如何将数据1 |数据2 |数据3 |数据4 |数据5 |切片到数组中

这是我的代码:

import java.io.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Jfetizanan
 */
public class DATALOAD {

    /**
     * @param args the command line arguments
     * @throws UnsupportedEncodingException
     * @throws FileNotFoundException
     * @throws IOException  
     */
    public static void main(String[] args) throws UnsupportedEncodingException, FileNotFoundException, IOException {
        try{
      FileInputStream fstream = new FileInputStream("data.dat");
            try (DataInputStream in = new DataInputStream(fstream)) {
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String strLine;
                while ((strLine = br.readLine()) != null)   {

                 if (strLine.startsWith("JFETZ")){
                 System.out.println("Data Found");

                 }
                 else
                 {System.out.println("Nothing Found in this line");}
                }
            }
      }catch (Exception e){
          System.err.println("Error: " + e.getMessage());
      }
    }
}
它由
|
执行

String values[] = strLine.split("\\|");
并将搜索键与数组的第一个元素
值[0]

while ((strLine = br.readLine()) != null)   {
 String values[] = strLine.split("\\|");
 if ("JFETZ".equals(values[0]))){
   System.out.println("Data Found");
 }else{
   System.out.println("Nothing Found in this line");}
 }
}

你得到的
str
像:

String str = "12293 | blahh | blehh | blihh | blohh | bluhh";
String[] arr = str.split("\\| "); // give space after | to trim spaces

是的,没错,我刚查过Eclipse。编辑:)如果您想阅读文本,请不要使用DataInputStream,它比有用的内容更容易混淆。