如何在java中实现文件I/O?
这个节目怎么了?未报告异常,未找到文件异常。如何在java中实现文件I/O?,java,Java,这个节目怎么了?未报告异常,未找到文件异常。 我认为如果文件不存在,它会创建一个新的文件,比如C++。有什么我遗漏的吗?只包含OutputStream cout=newfileoutputstream(f);在methode中,使用try catch或add throws关键字 import java.util.Scanner; import java.io.*; public class Filewrite { public static void main(String[] args)
我认为如果文件不存在,它会创建一个新的文件,比如C++。有什么我遗漏的吗?只包含OutputStream cout=newfileoutputstream(f);在methode中,使用try catch或add throws关键字
import java.util.Scanner;
import java.io.*;
public class Filewrite
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter your name:: ");
String Name = in.nextLine();
System.out.print("Enter your marks in subject 1:: ");
int marks1 = in.nextInt();
System.out.print("Enter your marks in subject 2:: ");
int marks2 = in.nextInt();
System.out.print("Enter your marks in subject 2:: ");
int marks3 = in.nextInt();
File f = new File("testdata.txt");
OutputStream cout = new FileOutputStream(f); //Error is here
System.out.println("Name " + Name);
System.out.println("Marks1 " + marks1);
System.out.println("Marks2 " + marks2);
System.out.println("Marks3 " + marks3);
}
}
要将内容写入文件,您需要使用cout.write(此处为您的内容)
希望它能帮助您。您需要使用try/catch块,或者向方法中添加throws
FileNotFoundException
(并在调用方法中处理)
基本异常处理,如果您不熟悉,现在是学习的时候了。如果找不到文件,则不会自动创建该文件。
您必须指示创建该文件 示例:
try { OutputStream cout = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
但是,您必须处理异常。让我们从显而易见的事情开始 抛出:如果 文件存在,但它是一个目录而不是常规文件,不存在 存在但无法创建,或由于任何其他原因无法打开 这意味着您需要捕获您可以处理的异常,或者重新抛出您不想/不能处理的异常 在这种情况下,您应该尝试捕获异常,并至少显示详细信息 仔细看一看(和主题上列出的其他教程) 你还应该看看 现在,使用
FileOutputStream
没有什么错,但是它对于简单地编写文本来说是低级的,下面的示例使用了一个BufferedWriter
,它可以写入FileWriter
,使用它的主要原因是因为它有两个简单的方法,可以让生活更轻松,第一个是write(String)
,另一个是newLine
File f = new File( "testdata.txt" );
// create new file if does not exists
f.createNewFile(); // if exists, ignores
OutputStream cout = new FileOutputStream( f );
// now write the data into the file
cout.write( "Name " + Name + "\n" );
cout.write( "Marks1 " + marks1 + "\n" );
cout.write( "Marks2 " + marks2 + "\n" );
cout.write( "Marks3 " + marks3 + "\n" );
此示例使用Java 7+的
try with resource
功能,一旦try块
存在,它会自动关闭编写器,从而节省了执行最后
块的时间。FileNotFoundException可能处理无法创建文件的可能性。“如果文件存在,但它是一个目录而不是一个常规文件,不存在但无法创建,或者由于任何其他原因无法打开”,那么如何包装文件并在程序中使用它。通常在C++中自动创建文件。文件输出流应该创建如果上述条件不满足的话……你得到的确切错误是什么?@猎人程序根本就不运行。它不是一个合法的Java程序。接受这里给你的建议,克服你的厌恶,加入“尝试-抓住”模块,然后再试一次。如果你只是想争论一下,我看不出发帖的意义。
public class Filewrite {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter your name:: ");
String name = in.nextLine();
System.out.print("Enter your marks in subject 1:: ");
int marks1 = in.nextInt();
System.out.print("Enter your marks in subject 2:: ");
int marks2 = in.nextInt();
System.out.print("Enter your marks in subject 2:: ");
int marks3 = in.nextInt();
System.out.println("Name " + name);
System.out.println("Marks1 " + marks1);
System.out.println("Marks2 " + marks2);
System.out.println("Marks3 " + marks3);
File f = new File("testdata.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(f))) {
bw.write("name=" + name);
bw.newLine();
bw.write("Marks1=" + marks2);
bw.newLine();
bw.write("Marks2=" + marks2);
bw.newLine();
bw.write("Marks3=" + marks2);
} catch (IOException exp) {
exp.printStackTrace();
}
}
}