Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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_Java.util.scanner - Fatal编程技术网

Java 扫描仪和文件的问题

Java 扫描仪和文件的问题,java,java.util.scanner,Java,Java.util.scanner,我有一本书。我想从中读取和写入的csv文件。如果有新的输入,它应该检查文件中是否已经存在string1。String1可以包含数字、字符和空格 写入文件根本没有问题,但是当它应该检查string1是否存在时,它只在string1看起来是1或2时才起作用。但是string1将是一个由字符、数字和空格组成的字符串 Scanner scanner = new Scanner(file); while (scanner.hasNextLine())

我有一本书。我想从中读取和写入的csv文件。如果有新的输入,它应该检查文件中是否已经存在string1。String1可以包含数字、字符和空格

写入文件根本没有问题,但是当它应该检查string1是否存在时,它只在string1看起来是1或2时才起作用。但是string1将是一个由字符、数字和空格组成的字符串


    Scanner scanner = new Scanner(file);                   
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        if(line.contains(string1)) {
            // Print some error message
        }
        else{
            // write output to .csv file
            }
    }
    scanner.close();

我已尝试更改文件的编码,但也没有帮助

甚至我在扫描仪和csv读取方面也遇到了一些问题,所以我使用BufferedReader代码:-

    String inputFileName = "fileName";
    BufferedReader br ;
    try {
        br = new BufferedReader(new FileReader(inputFileName));
        String line = br.readLine();
    }
     catch (FileNotFoundException e) {  
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
但扫描仪也适用于csv,扫描仪代码:-

Scanner br;
    try {
        br = new Scanner(new FileReader(inputFileName));
        String line = br.next();
    }
     catch (FileNotFoundException e) {  
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

那真的没用。扫描仪本身似乎可以工作,但带有contain的过滤器会对特殊字符产生一些问题。。对于BR也是一样,我在几个小时前尝试过将所有读取值添加到一个集合中,然后迭代该集合并写入一个文件。您将不会有任何重复的值。
“abcde”.contains(“bc”)
起作用,但您可能希望搜索字符串中的任何字符:
“abcde”.matches(.*[ae].*)
。当字符串是变量时,如何搜索字符串中的任何字符?
line.matches(.[“+string1+”])基本上是这样的,但是一些特殊的正则表达式字符必须按常规处理:
-
]
等等。我不是指任何字符,而是指字符串本身。就像我放1234时,如果是123,它应该允许输入,但不是1234。。