Java 从文件中读取特定行,并将数据从一行中分离出来
我对java相当陌生,因此任何帮助都将不胜感激 我试图编写一个程序,询问用户从哪个文件读取,然后它要求一个ID,在文件中搜索该ID,然后从该行输出信息。 它将从中读取的文本文件的格式如下: 苹果^201^3 香蕉^202^4 橙色^205^5Java 从文件中读取特定行,并将数据从一行中分离出来,java,file,Java,File,我对java相当陌生,因此任何帮助都将不胜感激 我试图编写一个程序,询问用户从哪个文件读取,然后它要求一个ID,在文件中搜索该ID,然后从该行输出信息。 它将从中读取的文本文件的格式如下: 苹果^201^3 香蕉^202^4 橙色^205^5 2nd列用于标识 此外,我还需要将信息分开,以便以如下方式输出: 项目:苹果 ID:201: 价格:3美元 由于字符串拆分采用正则表达式且^具有正则表达式的含义,因此需要对其进行反斜杠 String input = fin.nextLine();
2nd
列用于标识
此外,我还需要将信息分开,以便以如下方式输出:
项目:苹果
ID:201:
价格:3美元
由于字符串拆分采用正则表达式且
^
具有正则表达式的含义,因此需要对其进行反斜杠
String input = fin.nextLine(); // e.g. Banana^202^4
System.out.println(input.split("\\^")[2]);
publicstaticvoidmain(字符串[]args)引发IOException{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入文件名>>”;
字符串文件名=keyboard.nextLine();
System.out.println(“输入项目ID:”);
字符串fructId=Integer.toString(keyboard.nextInt());
try(BufferedReader buffer=new BufferedReader(new FileReader(filename))){
弦线;
而((line=buffer.readLine())!=null){
String[]tokens=line.split(\\^);
if(tokens.length<3&&!tokens[1].equals(水果ID))
继续;
System.out.println(“项:+tokens[0]);
System.out.println(“ID:+tokens[1]);
System.out.println(“价格:$”+代币[2]);
打破
}
}
捕获(例外情况除外){
例如printStackTrace();
}
}
- 通过“^”,检查您至少有3个令牌,如果第二个令牌等于输入ID,则打印它们
- ,您可以对资源使用
,以确保在语句末尾关闭每个资源try
- 找到特定行后,可以使用
来避免解析文件的其余部分李>break
String input = fin.nextLine(); // e.g. Banana^202^4
System.out.println(input.split("\\^")[2]);
public static void main(String[] args) throws IOException {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a filename >> ");
String filename = keyboard.nextLine();
System.out.println("Enter item ID: ");
String fruitID = Integer.toString(keyboard.nextInt());
try (BufferedReader buffer = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = buffer.readLine()) != null) {
String[] tokens = line.split("\\^");
if (tokens.length < 3 && !tokens[1].equals(fruitID))
continue;
System.out.println("Item: " + tokens[0]);
System.out.println("ID: " + tokens[1]);
System.out.println("Price: $" + tokens[2]);
break;
}
}
catch (Exception ex){
ex.printStackTrace();
}
}
Hope this will help
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FindGivenStringFromFile {
public static void main(String args[]) throws FileNotFoundException {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a filename >> ");
String filename = keyboard.nextLine();
File f = new File(filename);
Scanner fin = new Scanner(f);
System.out.println("Enter item ID: ");
int fruitID = keyboard.nextInt();
//Reading each line of file using Scanner class
int lineNumber = 1;
while (fin.hasNextLine()) {
String line = fin.nextLine();
String[] lineDataArray = line.split("\\^");
if(lineDataArray != null && lineDataArray.length >2){
if(Integer.parseInt(lineDataArray[1]) == fruitID){
System.out.println("Item: " + lineDataArray[0]);
System.out.println("Id: " + lineDataArray[1]);
System.out.println("price: $" + lineDataArray[2]);
}
lineNumber++;
}
}
}
}