此示例演示如何使用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中做了一些相对简单的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的新手,所以如果我说任何愚蠢的话,请耐心等待!我遇到了一些问题,我认为这些问题与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.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) 所以我试图使用依赖于用户输入的if-else语句.当用户的输入只有一个单词时,它可以工作,但是,多个单词输入无法识别并触发else语句.我该如何解决这个问题?
import java.util.Scanner;Run Code Online (Sandbox Code Playgroud)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"); } } }
嗨,我正在尝试设置扫描仪以打印出文本文件的内容。这是我的代码:
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) 我正在努力解决以下问题.
问题:输入包含块数n(1≤n≤20)和由空格分隔的块w1,...,wn(整数,1≤wi≤100000)的权重.输入应该来自用户.
请找到我的代码:
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)
我不认为这是正确的方式因为输入应该用空格分隔..
我正在考虑如何进行,但无法提出任何解决方案.你可以帮我解决这个问题.谢谢.
我有以下代码:
Scanner input = new Scanner(System.in);
input.useDelimiter("\n")
System.out.println(input.next());
System.out.println("end");
Run Code Online (Sandbox Code Playgroud)
当我运行它并键入"橙色苹果"然后输入,它将打印
橙色的苹果
结束
代替
橙色苹果
结束
这就是我真正想要打印的内容.我不知道为什么它继续打印一个额外的空行.我怎样才能解决这个问题?
我正在尝试读取由空格分隔的字符串值.一旦我尝试将它们设置为变量,我就会得到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) 我正在尝试读取用户给出的行并将其打印出正确的内容.现在,当我进入朱利安时,它不会打印任何东西.
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 ×10
arrays ×1
delimiter ×1
file ×1
file-io ×1
if-statement ×1
inputstream ×1
newline ×1
resources ×1
string ×1
unicode ×1
user-input ×1