如何编写读取和写入文件的程序

时间:2019-11-17 00:22:49

标签: 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 {

    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");
  }
  }

2 个答案:

答案 0 :(得分:-1)

长镜头,但可能有效,因为昨天有人在此站点上遇到了该问题。我向他们推荐了this的另一个主题的答案,在该主题中,文件URL的格式不同,java似乎比纯文本文件路径更能接受该路径。

答案 1 :(得分:-1)

对于收到的错误(Failed to open file in4.txt),只需确保所读取的文件与JAR(或在IDE中运行的文件)处于同一文件级别。或者,您可以运行createNewFile()函数并编辑创建的函数。

Image showing file level

(IntelliJ从项目的基础上运行文件,因此为什么我的文件不在类文件所在的位置)。

但是,我自己运行代码时,收到此错误:java.util.NoSuchElementException。我能够通过从readInt()切换到readLine()并具有如下所示结构的in4.txt文件来纠正此问题:

1
3
5
7
9

我认为readInt()与readLine()不起作用是由于this问题中提出的问题。另外,要避免多次调用readLine / readInt,而不要每次循环都分配一个变量,因为每次调用都会使扫描程序(more info here)前进。