Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java文件读写_Java_Io - Fatal编程技术网

从Java文件读写

从Java文件读写,java,io,Java,Io,如何从文件中读取数字、字符串或字符。我找到了很多方法,但我不知道怎样才是最好和清晰的方法。我想要像系统控制台一样进行输入/输出操作 我创建了两个文件input.in和output.out,我想从input.in读取一个数字,然后将数字打印到output.out import java.util.Scanner; import java.io.*; public class MainClass { public static void main(String[] args) throw

如何从文件中读取数字、字符串或字符。我找到了很多方法,但我不知道怎样才是最好和清晰的方法。我想要像系统控制台一样进行输入/输出操作

我创建了两个文件input.in和output.out,我想从input.in读取一个数字,然后将数字打印到output.out

import java.util.Scanner;
import java.io.*;

public class MainClass {

    public static void main(String[] args) throws IOException {
        File file = new File("input.in");
        Scanner scanner = new Scanner(file);
        String a = scanner.nextLine();
        System.out.println(a);
    }
}
我首先想测试是否正在从文件读取,但我得到了以下结果:

Exception in thread "main" java.util.NoSuchElementException: No line found
  at java.util.Scanner.nextLine(Unknown Source)
  at MainClass.main(MainClass.java:9)
在文件input.In中,我有:

文件

i/o

与评论中提到的一样,我怀疑您的应用程序无法找到您提供的文件。我建议您采用以下代码:

import java.util.Scanner;
import java.io.*;

public class MainClass {
    public static void main(String[] args) throws Exception {
        String filePath = "c:\\absolute\\path\\to\\input.in";
        File file = new File(filePath);
        if(file.exists()) {
            System.out.println("Reading contents of file at: " + filePath)
            try (Scanner scanner = new Scanner(file)) {
                while(scanner.hasNext()) {
                    String a = scanner.nextLine();
                    System.out.println(a);
                }
            }
        }
        else {
            System.out.println("File not found at: " + filePath);
        }
    }
}
参考资料:


    • 路径错误。对于那些也有我的问题的人,这里是输入/输出操作的代码:

      import java.util.Scanner;
      import java.io.*;
      
      public class MainClass {
      
          public static void main(String[] args) throws IOException {
              //the root path is your project name
              File in = new File("input.in");
              File out = new File("output.out");
      
              Scanner scannerInput = new Scanner(in);
              BufferedWriter writer = new BufferedWriter(new FileWriter(out));
              String string;
              while(scannerInput.hasNextLine()) {
                  string = scannerInput.nextLine();
                  writer.write(string);
                  writer.newLine();
              }
      
              writer.flush();//very important
              scannerInput.close();
              writer.close();
      
          }
      }
      

      您可以使用
      FileInputStream
      FileOutputStream
      执行此操作

      希望这能达到你的目的

      import java.util.Scanner;
      import java.io.*;
      
      public class MainClass {
      
          public static void main(String[] args) throws IOException {
              FileInputStream inputStream = null;
              FileOutputStream outputStream = null;
              Scanner sc = null;
              try {
                  inputStream = new FileInputStream("IN File");
                  outputStream = new FileOutputStream("OUT File");
                  sc = new Scanner(inputStream, "UTF-8");
                  while (sc.hasNextLine()) {
                      String line = sc.nextLine();
                      System.out.println(line);
                      byte[] strToBytes = line.getBytes();
                      outputStream.write(strToBytes);
                      outputStream.write(System.getProperty("line.separator").getBytes());
                  }
                  // note that Scanner suppresses exceptions
                  if (sc.ioException() != null) {
                      throw sc.ioException();
                  }
              } catch (FileNotFoundException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              } finally {
                  if (inputStream != null) {
                      inputStream.close();
                  }
                  if (sc != null) {
                      sc.close();
                  }
              }
          }
      }
      

      如果您是初学者,我建议您避免使用
      文件
      类,并尽可能坚持使用
      路径
      类。您是否检查了您的
      输入。
      文件中实际包含一行?它包含两行:第一行:文件,第二行i/o。我将文件放入src>default包中,它可能没有读取您认为它正在读取的
      输入。你应该给它一个完整的路径,或者学习如何使用资源。但是对于初学者,尝试完整的路径。路径是错误的,谢谢!仅供参考:由于其长度和内容,此答案被标记为低质量。你可能想要改进它,以防止选票被否决。