Java 如何编写对文件进行读写的程序
我在读一个有数字的文件,检查这个数字是否是质数,然后在质数旁边写上“是质数”,然后打印到另一个文件中, 我不断得到: 无法打开文件in4.txt,正在退出 这是我的代码:Java 如何编写对文件进行读写的程序,java,Java,我在读一个有数字的文件,检查这个数字是否是质数,然后在质数旁边写上“是质数”,然后打印到另一个文件中, 我不断得到: 无法打开文件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 {
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");
}
}
import java.util.Scanner;
导入java.util.ArrayList;
导入java.io.File;
导入java.io.IOException;
导入java.io.PrintWriter;
公共类校验素数{
公共静态无效校验素数(字符串输入\u文件,字符串输出\u文件){
文件温度=新文件(在文件中);
扫描仪输入;
尝试
{
输入=新扫描仪(温度);
}
捕获(例外e)
{
System.out.printf(“无法打开文件%s\n”,在\u文件中);
返回;
}
while(true)
{
for(int i=2;i
Longshot,但可能会起作用,因为昨天有人在这个网站上遇到了这个问题。我让他们回答一个不同的主题,其中文件URL的格式不同于纯文本文件路径,java似乎更能接受该路径。对于您收到的错误(未能在4.txt中打开文件
),只需确保您正在读取的文件与您的JAR(或在IDE中运行的文件)处于相同的文件级别。或者,您可以运行createNewFile()函数并编辑创建的函数
(IntelliJ从项目的基础运行文件,因此我的文件不在类文件所在的位置)
然而,当我自己运行代码时,我收到了这个错误:java.util.NoSuchElementException
。我可以通过从readInt()切换到readLine()来纠正这个错误,并使in4.txt文件的结构如图所示:
1
3
5
7
9
我认为readInt()与readLine()不起作用是由于问题中出现的问题。此外,要小心多次调用readLine/readInt,而不是为每个循环迭代分配一个变量,因为每次调用都会使扫描程序()前进。检查
catch()中出现的异常消息
block,它会告诉你问题出在哪里这可能会有帮助:你发布的这行代码-input=new Scanner(temp);
-抛出FileNotFoundException
,因此更改catch
以捕获该异常。并添加到catch
块中的代码:e.printStackTrace()
。然后提问并发布得到的堆栈跟踪。当前工作目录不必与JAR文件的位置一致。