Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取文件并返回字符串及其值_Java_String_File_Return - Fatal编程技术网

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”来理解,这将帮助你理解比我解释更多的东西