我正在读取带有数字的文件,检查数字是否为质数,然后在质数旁边写入“是质数”,然后将其打印到另一个文件中, 我不断得到:
无法打开文件in4.txt退出...
这是我的代码:
import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class CheckPrimes {
public static void checkPrimes(String in_file, String out_file) {
File temp = new File(in_file);
Scanner input;
try
{
input = new Scanner(temp);
}
catch (Exception e)
{
System.out.printf("Failed to open file %s\n", in_file);
return;
}
while (true)
{
for (int i = 2; i < input.nextInt(); i++)
{
if (input.nextInt() % i != 0)
{
try{
PrintWriter output = new PrintWriter(out_file);
output.print( input.nextInt() + " is prime");
output.close();
}
catch(IOException ex)
{
System.out.printf("Error : %s\n",ex);
}
}
}
}
{
public static void main(String[] args)
{
checkPrimes("in4.txt", "out4.txt");
System.out.printf("Exiting...\n");
}
}
答案 0 :(得分:-1)
长镜头,但可能有效,因为昨天有人在此站点上遇到了该问题。我向他们推荐了this的另一个主题的答案,在该主题中,文件URL的格式不同,java似乎比纯文本文件路径更能接受该路径。
答案 1 :(得分:-1)
对于收到的错误(Failed to open file in4.txt
),只需确保所读取的文件与JAR(或在IDE中运行的文件)处于同一文件级别。或者,您可以运行createNewFile()函数并编辑创建的函数。
(IntelliJ从项目的基础上运行文件,因此为什么我的文件不在类文件所在的位置)。
但是,我自己运行代码时,收到此错误:java.util.NoSuchElementException
。我能够通过从readInt()切换到readLine()并具有如下所示结构的in4.txt文件来纠正此问题:
1
3
5
7
9
我认为readInt()与readLine()不起作用是由于this问题中提出的问题。另外,要避免多次调用readLine / readInt,而不要每次循环都分配一个变量,因为每次调用都会使扫描程序(more info here)前进。