我想使用csv和txt文件批量创建一些批处理脚本,运行时出现错误。我对代码进行了注释,所以您应该能够从这些注释中确定我的意图。我只是在这里写得更多,因为机器人要求我在发帖之前继续写更多的解释。一旦这个红色文本框消失,我将停止写作,你可以停止阅读。我真的希望你已经停止阅读了,因为这肯定会让我感到厌烦。我开始怀疑我是否应该开始一个新的段落。让我们看看这是否有帮助。
我有一种感觉,也许使用不同的语言会更合适,但我的经验主要限于java,我希望在继续之前使用这种语言变得更好。
线程“主”java.util.NoSuch元素异常:在打印机脚本创建器上找不到行(扫描仪.java:1540)。打印机脚本创建者主(打印机脚本创建者.java:29)
public class PrinterScriptCreator {
public static void main(String[] args) throws FileNotFoundException {
File csvFile = new File("printers.csv");
File txtFile = new File("xeroxTemplate.txt");
Scanner csvScanner = new Scanner(csvFile);
csvScanner.useDelimiter(",");
Scanner txtScanner = new Scanner(txtFile);
try{
while(csvScanner.hasNext()){
//create file with name from first csv cell
File file = new File(csvScanner.next());
//create FileWriter to populate the newly created file
FileWriter fw = new FileWriter(file);
//create PrintWriter to communicate with FileWriter
PrintWriter pw = new PrintWriter(fw);
//copy first 7 lines from xeroxTemplate.txt
for(int i=0; i<7; i++){
pw.println(txtScanner.nextLine());
}
//copy the next three cells from CSV into new file
for(int i=0; i<3; i++){
pw.println(csvScanner.next());
}
//copy remaining lines from TXT to the new file
while(txtScanner.hasNextLine()){
pw.println(txtScanner.nextLine());
}
}
} catch (IOException ex) {
System.out.printf("ERROR: %s\n", ex);
}
}
}
需要在while循环中创建txtScanner,以便在每次创建文件后重新创建它。否则它就没有台词了。
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at printerscriptcreator.PrinterScriptCreator.main(PrinterScriptCreator.java:29)
这告诉你发生了什么。你的一个扫描仪试图拉下一条线,但它没有,所以它抛出了这个异常。
它告诉你PrinterScriptCreator.java:29。我没有你的粘贴的行号,但是检查一下第29行。那是哪一行?我猜是这一行:
for(int i=0; i<7; i++){
pw.println(txtScanner.nextLine());
}
你试图拉7条线,但没有7条。因此,它会引发异常。
你可以尝试这样做
for(int i=0; i<7; i++){
if(txtScanner.hasNextLine()){
pw.println(txtScanner.nextLine());
}
}
或者您可以尝试使用try-catch块来处理它。不管怎样,检查你的文件,确保它们有正确的数据。
我注意到,你检查了下一个()
一次,然后抓住下一个()
三次。你可能应该在 for 循环中放置
一个条件。
while(csvScanner.hasNext()){
...
//copy the next three cells from CSV into new file
for(int i=0; i<3; i++){
pw.println(csvScanner.next());
}
对不起,我的问题,但我是一个初学者。请你能支持与扫描仪相关的关心。 “背景”:我写了一些研究扫描仪的代码: 我有一个例外:找不到行。这就是我在输出中得到的结果: 任务:运行失败今天是哪一天?线程“main”java.util.NosuchelementException异常:在java.base/java.util.Scanner.NextLine(Scanner.java:1651)和demoo
问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和
我对的体验非常糟糕,因为我使用的是和。所以我不能做扫描仪的程序。我是新手,所以请帮助我,“找不到”。这是我到目前为止的代码。
我试图让一个扫描器读取文本文件的输入,将该输入放入一个字符串,为该字符串设置一个StringTokenizer,然后设置一个String[],该数组的每个元素都是该StringTokenizer的标记。这样做的目的是从文本文件中获取输入文本的String[],以便数组的每个元素都是文本文件中的一个单词。但是,到目前为止,我的代码生成了一个NoSuchElementFound异常。 为什么会发生这种
问题内容: 如何将扫描仪的定界符设置为;或换行? 我试过: 但这不起作用。 问题答案: 通常,在模式中,您需要将翻倍。 所以,尝试 要么 编辑 :如果是问题,则可能要尝试以下操作: 它匹配的一个或多个,和。 注意 :我还没有尝试过这些。
问题内容: 我正在尝试读取具有多个单词的字符串,即。洛杉矶或纽约市。如果有两个词并将它们分割在变量之间,则使用scanner.next()进行“出发”和“到达”只会读取第一个。nextLine()也不是很幸运。这是我的代码: 我知道这很简单,但我还没有弄清楚。 这是上面的代码的输入/输出: 输入航班号:29 输入出发城市:(立即跳至下一行) 输入到达城市: -—我真正想要的是---- 输入航班号: