Java 如何读取文件并返回字符串及其值
我有一个包含单词及其值的文件。我想创建返回单词及其值的参数,但我不知道如何做,我的代码也不起作用 这是我的密码Java 如何读取文件并返回字符串及其值,java,string,file,return,Java,String,File,Return,我有一个包含单词及其值的文件。我想创建返回单词及其值的参数,但我不知道如何做,我的代码也不起作用 这是我的密码 public static void main(String[] args)throws IOException { Scanner scan = new Scanner("/..../file.txt"); String word = scan.next(); while(scan.hasNextLine()){ scan.nextLine
public static void main(String[] args)throws IOException {
Scanner scan = new Scanner("/..../file.txt");
String word = scan.next();
while(scan.hasNextLine()){
scan.nextLine();
System.out.println(word);
}
scan.close();
}
这就是文件中的内容,有很多数据
{hi=2, bye=5, school=3, went=2, going=1, yesss=1, etc..}
请提供有关如何执行此操作的帮助?scanner类扫描构造函数中提供的值。 如果该值是一个字符串,它只扫描该字符串 如果要扫描文件,应使用文件对象作为参数,例如: 扫描仪扫描=新扫描仪(新文件(“/…../File.txt”) 尝试执行以下操作
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("D:/abc.txt"));
while ((sCurrentLine = br.readLine()) != null) {
String trimmedStr = sCurrentLine.replace(" ", "");
String mainStr = trimmedStr.substring(1,trimmedStr.length()-1);
String[] arr = mainStr.split(",");
Map<String, String> mainMap = new HashMap<String, String>();
for(String pair : arr){
String[] kvArr = pair.split("=");
mainMap.put(kvArr[0], kvArr[1]);
}
System.out.println(mainMap.get("hi"));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
publicstaticvoidmain(字符串[]args){
BufferedReader br=null;
试一试{
弦电流线;
br=新的BufferedReader(新的文件读取器(“D:/abc.txt”);
而((sCurrentLine=br.readLine())!=null){
字符串trimmedStr=sCurrentLine.replace(“,”);
字符串mainStr=trimmedStr.substring(1,trimmedStr.length()-1);
字符串[]arr=mainStr.split(“,”);
Map mainMap=新的HashMap();
for(字符串对:arr){
字符串[]kvArr=pair.split(“”);
mainMap.put(kvArr[0],kvArr[1]);
}
System.out.println(mainMap.get(“hi”);
}
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
如果(br!=null)br.close();
}捕获(IOEX异常){
例如printStackTrace();
}
}
}
您的文件应该包含以下内容
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("D:/abc.txt"));
while ((sCurrentLine = br.readLine()) != null) {
String trimmedStr = sCurrentLine.replace(" ", "");
String mainStr = trimmedStr.substring(1,trimmedStr.length()-1);
String[] arr = mainStr.split(",");
Map<String, String> mainMap = new HashMap<String, String>();
for(String pair : arr){
String[] kvArr = pair.split("=");
mainMap.put(kvArr[0], kvArr[1]);
}
System.out.println(mainMap.get("hi"));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
{hi=2,bye=5,school=3,go=2,go=1,yesss=1}
作品:
二,
您在Scanner构造函数中传递文件路径的方式是错误的,您可以用这种方式传递文件路径 扫描仪扫描=新扫描仪(新文件(“/…../File.txt”)
希望这能有所帮助。Java?你应该为你的问题标注正确的语言。此外,我建议您删除连续的空行,以使代码更易于阅读。您的代码不起作用怎么办?你能给我们看一下输出或任何异常吗?@crashmstr是的,很抱歉是java。它基本上返回了我的文件路径,即/…../file.txt,我不明白你的文件中有什么?这些值是逗号吗?或者它们出现在新行?这看起来不错,但我的文件包含数百个单词及其值,如果我想获得所有单词及其值,如何以比重复打印输出过程更简单的方式粘贴一些文件内容,就像我在您的问题编辑我的问题中所做的那样,这是如何在我的文件中显示任何你评论代码的可能性。所以我可以理解它在做什么,谢谢,你可以打印不同的东西,比如“trimmedStr”,“mainStr”来理解,这将帮助你理解比我解释更多的东西