gpt4 book ai didi

java - 如何从文件中的一行读取单词和整数

转载 作者:行者123 更新时间:2023-11-30 03:13:39 26 4
gpt4 key购买 nike

我这里有一个代码:-

package testFiles;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class ReadFile {
public static void main(String[] args){
FileReader in=null;
FileWriter out=null;
String line;
File fp=new File("readFrom.txt");
try {
Scanner sc=new Scanner(fp);
//System.out.println(sc.next());
if(sc.next().contentEquals("Coding")){
System.out.println("####");
while(sc.next().contentEquals("\n")==false){
if(sc.nextInt()==1){
System.out.println("Coding is set.");
}
else{
System.out.println("Coding is not set.");
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

我想要做什么:我想从文件中读取一个单词“编码”。该单词后面的空格后面会有一个整数。即。该文件将是:编码1在读取“编码”时,程序应读取相应的数字,如果数字为 1,则返回“已设置”;如果数字不是 1,则返回“未设置”。

我的问题:我可以读取字符串并验证它是否是编码。但我无法获取数字。

我想要的:我想让程序读取字符串以及对应的数字并根据条件返回语句。记住这个词“编码”和数字在同一行。请指导我。

最佳答案

您应该将 sc.hasNext(); 添加到您的 while 条件中。 sc.next(); 将读取下一个值,您在检查条件时将丢失它。我还添加了一些关于 finally 上的流关闭操作的建议。

Code at the below prints:

Coding
Coding is set.

"readFrom.txt" has text: "Coding 1"

public static void main(String[] args) {

FileReader in = null;
FileWriter out = null;
File fp = new File("D:/readFrom.txt");
Scanner sc = null;
try {
sc = new Scanner(fp);
String str = "";
while (sc.hasNext()) {
str = sc.next();
if (str.contentEquals("Coding")) {
System.out.println(str);
if (sc.nextInt() == 1) {
System.out.println("Coding is set.");
} else {
System.out.println("Coding is not set.");
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {

try {
if (out != null)
out.close(); // you should close it on finally
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (in != null)
in.close(); // you should close it on finally
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (sc != null)
sc.close(); // you should close it on finally
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

关于java - 如何从文件中的一行读取单词和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com