标签: java.util.scanner

使用Scanner读取文件:为什么在使用Scanner读取java文件时出现错误?

此示例演示如何使用Scanner逐行读取文件(它不执行写入操作)我不知道为什么在尝试编译时出现错误.有人可以向我解释一下原因吗?我正在使用jcreatorLE和JDK 1.6来运行我的程序:

import java.io.*;
import java.util.Scanner;

public final class File_read {

  public static void main(String... aArgs) throws FileNotFoundException {
    ReadWithScanner parser = new ReadWithScanner("C:\\Temp\\test.txt");
    parser.processLineByLine();
    log("Done.");
  }

  /**
  * @param aFileName full name of an existing, readable file.
  */
  public ReadWithScanner(String aFileName){
    fFile = new File(aFileName);  
  }

  /** Template method that calls {@link #processLine(String)}.  */
  public final void processLineByLine() throws FileNotFoundException {
    Scanner scanner = new Scanner(fFile);
    try {
      //first use a Scanner to get each line
      while ( scanner.hasNextLine() …
Run Code Online (Sandbox Code Playgroud)

java file java.util.scanner

1
推荐指数
1
解决办法
2472
查看次数

Java - 扫描仪在一定数量的行之后不扫描

我在Java中做了一些相对简单的I/O. 我有一个.txt文件,我正在阅读使用扫描仪和.txt文件,我正在使用BufferedWriter写.然后另一个Scanner读取该文件,然后另一个BufferedWriter创建另一个.txt文件.我提供了下面的代码以防万一,但我不知道它是否会有太多帮助,因为我不认为代码是这里的问题.代码编译没有任何错误,但它没有做我期望的.由于某种原因,charReader只读取其文件的大约一半,然后hasNext()将返回false,即使文件末尾尚未到达.这些不是大文本文件 - statsReader的文件是34 KB,而charReader的文件是29 KB,甚至更奇怪,因为statsReader读取整个文件很好,而且它更大!此外,我确实有一个try/catch包围的代码,我只是没有包含它.

从我在网上看到的情况来看,这可能发生在非常大的文件中,但这些文件非常小,所以我很丢失.

我的操作系统是Windows 7 64位.

        Scanner statsReader = new Scanner(statsFile);
        BufferedWriter statsWriter = new BufferedWriter(new FileWriter(outputFile));

        while (statsReader.hasNext()) {
            statsWriter.write(statsReader.next());
            name = statsReader.nextLine();
            temp = statsReader.nextLine();
            if (temp.contains("form")) {
                name += " " + temp;
                temp = statsReader.next();
            }
            statsWriter.write(name);
            statsWriter.newLine();
            statsWriter.write(temp);
            if (! (temp = statsReader.next()).equals("-"))
                statsWriter.write("/" + temp);
            statsWriter.write("\t");
            statsWriter.write(statsReader.nextInt() + "\t");
            statsWriter.write(statsReader.nextInt() + "\t");
            statsWriter.write(statsReader.nextInt() + "\t");
            statsWriter.write(statsReader.nextInt() + "\t");
            statsWriter.write(statsReader.nextInt() + "\t");
            statsWriter.write(statsReader.nextInt() + "");
            statsWriter.newLine();
            statsReader.nextInt();
        }

        Scanner charReader = …
Run Code Online (Sandbox Code Playgroud)

java file-io bufferedreader java.util.scanner

1
推荐指数
1
解决办法
852
查看次数

Java Unicode问题(我认为)

我是Java的新手,所以如果我说任何愚蠢的话,请耐心等待!我遇到了一些问题,我认为这些问题与Unicode有关.

我正在使用Scanner从UTF-8编码保存的文本文件中读取令牌化命令.基本上我想首先检查命令是否不等于"command1"或"command2"(在这些情况下我做其他事情),否则读入一个字符.如果令牌不是单个字符,我将输出错误.

这是我的代码:

public static void main(String[] args) throws FileNotFoundException {
    Scanner scanner = new Scanner(new File(args[0]));
    while (scanner.hasNext()) {
        String command = scanner.next();
        if (command.equals("command1")) {
            System.out.println("command: command1");
            // do something
        } else if (command.equals("command2")) {
            System.out.println("command: command2");
            // do something
        } else {
            if (command.length() == 1) {
                char c = command.charAt(0);
                System.out.println("character: " + c);
                // do something with c
            } else {
                System.err.println("error (string was " + command
                        + " with length " + …
Run Code Online (Sandbox Code Playgroud)

java unicode java.util.scanner

1
推荐指数
1
解决办法
3438
查看次数

将字符串拆分为不同的数组索引Java?

我试图将字符串拆分为不同的数组索引.该字符串来自用户输入(直通java.util.Scanner),并被加载到String变量中.如何将字符串中的输入拆分为不同的数组索引?

另外,我怎么能做到这一点是通过隐含的数学函数DOB作为一个int

这是我的代码:

import java.util.Scanner;

public class main {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter date of birth (MM/DD/YYYY):");
        String DOB;
        DOB = input.next();
        int age = 0;
        age = 2013 - DOB - 1;
        int age2 = 0;
        age2  = age + 1;
        System.out.println("You are " + age + " or " + age2 + " years old");
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays string java.util.scanner

1
推荐指数
1
解决办法
2046
查看次数

java中的多字扫描输入?

所以我试图使用依赖于用户输入的if-else语句.当用户的输入只有一个单词时,它可以工作,但是,多个单词输入无法识别并触发else语句.我该如何解决这个问题?

import java.util.Scanner;

public class MyFirstJavaClass {

public static void main(String[] args) { @SuppressWarnings("resource") Scanner myScanner = new Scanner(System.in); String answer; System.out.println("Catch the tiger or run away?"); answer = myScanner.next(); if (answer.equals("Catch the tiger" )) { System.out.println("You've been mauled by a tiger! What were you thinking?"); answer = myScanner.next(); } else { System.out.println("run away"); } } }
Run Code Online (Sandbox Code Playgroud)

java if-statement user-input java.util.scanner

1
推荐指数
1
解决办法
1万
查看次数

Java找不到文件?

嗨,我正在尝试设置扫描仪以打印出文本文件的内容。这是我的代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerReadFile {

    public static void main(String[] args) {

        // Location of file to read
        File file = new File("CardNative.java.txt");

        try 
        {

                Scanner scanner = new Scanner(file);

                while (scanner.hasNextLine()) 
                {
                    String line = scanner.nextLine();
                    System.out.println(line);
                }
                scanner.close();
        } 
        catch (FileNotFoundException e) 
        {
              e.printStackTrace();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我在项目中创建了一个源文件夹,并将文本文件放在其中。但是我不断收到此错误:

java.io.FileNotFoundException: CardNative.java.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.util.Scanner.<init>(Scanner.java:636)
    at ScannerReadFile.main(ScannerReadFile.java:14)
Run Code Online (Sandbox Code Playgroud)

java resources java.util.scanner

1
推荐指数
1
解决办法
7351
查看次数

读取由java中的空格分隔的输入

我正在努力解决以下问题.

问题:输入包含块数n(1≤n≤20)和由空格分隔的块w1,...,wn(整数,1≤wi≤100000)的权重.输入应该来自用户.

  1. 我应该如何用空格写输入?(假设我对块数的输入是n = 5,块的权重是:2 3 55 6 33 - 因为n = 5)
  2. 我应该如何读取用空格给出的输入并将其存储在某个列表或数组中?使用什么命令.

请找到我的代码:

public static void main(String[] args) {
    int b1 = 0;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter no. of blocks: ");
    b1 = in.nextInt();
    if (b1<=20) {
        in.nextLine();
        int[] arr = new int[b1];
        for (int i=0; i<b1; i++) {
            System.out.println("Enter a weights of ths blocks: ");
            if (arr[i]<=100000) {
          arr[i] = in.nextInt();




            }
    }
        }
Run Code Online (Sandbox Code Playgroud)

我不认为这是正确的方式因为输入应该用空格分隔..

我正在考虑如何进行,但无法提出任何解决方案.你可以帮我解决这个问题.谢谢.

java inputstream java.util.scanner

1
推荐指数
1
解决办法
3万
查看次数

使用\n作为分隔符会打印一个额外的空行

我有以下代码:

Scanner input = new Scanner(System.in);
input.useDelimiter("\n")
System.out.println(input.next());
System.out.println("end");
Run Code Online (Sandbox Code Playgroud)

当我运行它并键入"橙色苹果"然后输入,它将打印

橙色的苹果

结束

代替

橙色苹果
结束

这就是我真正想要打印的内容.我不知道为什么它继续打印一个额外的空行.我怎样才能解决这个问题?

java newline delimiter java.util.scanner

1
推荐指数
1
解决办法
93
查看次数

使用Scanner继续获取NoSuchElementException

我正在尝试读取由空格分隔的字符串值.一旦我尝试将它们设置为变量,我就会得到NoSuchElementException错误.我之前做过类似的事情而不是整数,而且从来没有得到过这个错误.做一些研究:java.util.NoSuchElementException:从文件中读取单词:它表示hasNext被实现为使用next()而hasNextLine被实现为使用nextLine(),所以我尝试用hasNext()替换hasNextLine() ,但仍然没有.有人可以帮忙吗?

File fileName = new File("maze.txt");
Scanner file = new Scanner(fileName);

while(file.hasNextLine()){
    String line = file.nextLine();
    Scanner scanner = new Scanner(line);

    //error starts from here
    String room = scanner.next();
    String roomName = scanner.next();
    String wall1 = scanner.next();
    String wall2 = scanner.next();
    String wall3 = scanner.next();
    String wall4 = scanner.next();
    scanner.close();
}
file.close();
Run Code Online (Sandbox Code Playgroud)

maze.txt

room 101 wall door0 wall wall
room 404 door0 wall door1 wall
room 420 wall wall wall door1
door door0 0 1 close
door …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

1
推荐指数
1
解决办法
605
查看次数

如果使用scan java时声明

我正在尝试读取用户给出的行并将其打印出正确的内容.现在,当我进入朱利安时,它不会打印任何东西.

import java.util.Scanner;

public class fantasyFootball {

    public static void main(String[ ] args) {
        Scanner reader = new Scanner(System.in); 
        System.out.println("Enter a name: ");
        String n = reader.toString();

        if("Julian".equals(n)){ 
            System.out.println("Win and Win: You go to the Playoffs");
            System.out.println("Lose and Win: ");
            System.out.println("Lose and Win: ");
            System.out.println("Lose and Lose: ");
        }
        reader.close();
    } 
}
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

1
推荐指数
1
解决办法
278
查看次数