Java 如何编写对文件进行读写的程序

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 {

我在读一个有数字的文件,检查这个数字是否是质数,然后在质数旁边写上“是质数”,然后打印到另一个文件中, 我不断得到:

无法打开文件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");
  }
  }
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文件的位置一致。