从Java文件读写
如何从文件中读取数字、字符串或字符。我找到了很多方法,但我不知道怎样才是最好和清晰的方法。我想要像系统控制台一样进行输入/输出操作 我创建了两个文件input.in和output.out,我想从input.in读取一个数字,然后将数字打印到output.out从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
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包中,它可能没有读取您认为它正在读取的输入。你应该给它一个完整的路径,或者学习如何使用资源。但是对于初学者,尝试完整的路径。路径是错误的,谢谢!仅供参考:由于其长度和内容,此答案被标记为低质量。你可能想要改进它,以防止选票被否决。