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

在JAVA中,扫描仪用于读取文件的语法是什么?

在JAVA中,扫描仪用于读取文件的语法是什么?,java,file,syntax,Java,File,Syntax,我试图从输入方法fromFile的文件中设置一个流,但是当我试图从方法中的内部访问它时,我得到了一个错误。我怎样才能解决这个问题 public int[] fromFile(String fileName) { // TO-DO: convert the file to a int[] int[] ret = new int [9]; int i = 0; File file = new File(fileName); while (i &l

我试图从输入方法fromFile的文件中设置一个流,但是当我试图从方法中的内部访问它时,我得到了一个错误。我怎样才能解决这个问题

public int[] fromFile(String fileName)
{
    // TO-DO: convert the file to a int[]
    int[] ret = new int [9];
    int i = 0;

    File file = new File(fileName); 

        while (i < 10){
        Scanner s = new Scanner(file); //HERE I get FileNotFoundException


        ret [i] = Integer.parseInt(s.next());
        i++;


     }
public int[]fromFile(字符串文件名)
{
//待办事项:将文件转换为int[]
int[]ret=新int[9];
int i=0;
文件=新文件(文件名);
而(i<10){
Scanner s=new Scanner(file);//这里我得到FileNotFoundException
ret[i]=Integer.parseInt(s.next());
i++;
}

您的代码实际上存在一些问题;首先,当使用
扫描仪包装
文件时,您需要关闭它(或者泄漏文件句柄)。这里我使用
尝试使用资源
。其次,您可以通过调用
File.canRead()检查文件是否存在并且可读
在您尝试阅读之前。此外,您可以使用
Scanner.nextInt()
而不是手动解析您的值(您可能应该首先调用
Scanner.hasNextInt()

public static int[] fromFile(String fileName) {
    int[] ret = new int[9];
    int i = 0;

    File file = new File(fileName);
    if (!file.canRead()) {
        try {
            System.err.printf("Cant read file at %s%n", file.getCanonicalPath());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    try (Scanner s = new Scanner(file)) {
        while (i < 10 && s.hasNextInt()) {
            ret[i] = s.nextInt();
            i++;
        }
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }
    return ret;
}
public static int[]fromFile(字符串文件名){
int[]ret=新int[9];
int i=0;
文件=新文件(文件名);
如果(!file.canRead()){
试一试{
System.err.printf(“无法读取%s%n处的文件”,file.getCanonicalPath());
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
尝试(扫描仪s=新扫描仪(文件)){
而(i<10&s.hasnetint()){
ret[i]=s.nextInt();
i++;
}
}捕获(ioe异常ioe){
ioe.printStackTrace();
}
返回ret;
}

确保您的文件路径正确?每次使用该方法时,该方法都会获取由文件名指定的新文件,因此我无法设置特定文件的路径。除非您告诉我们该错误是什么,否则我得到的错误不是问题描述。它就在屏幕上,就在您面前。绝对没有任何理由或者你没有在你的帖子中包含这些信息,所以我们也有。这个问题也表明你根本没有做任何研究工作,因为这里至少有几十个关于Java、扫描仪和读取文件的问题。当你在这里创建帐户时,有人建议你带上这些信息,阅读这些页面以熟悉w我在代码中写了filenotfound exception。包含代码的要点是你应该阅读它。仅仅因为扫描仪上存在问题并不意味着他们解决了手头的问题。大多数扫描仪帖子与文件无关。在评论之前先想一想这就是异常的真实外观:
java.io.FileNotFoundException:foobarblah(没有这样的文件或目录)
。它显示不存在的文件的文件名。若要修复它,请确保您传递的文件名与确实存在的文件名不同,或者您在再次运行代码之前创建了该文件。这并不难-错误非常具有描述性。