无法写入文件的内容
package employee;
import employee.nidhin.staples;
import java.util.*;
import java.io.*;
public class Employee {
public static void main(String[] args)
{
int j=3;
staples[] stemp = new staples[j];
String file_name = "d:/personal/11636470/NetBeansProjects/Employee/src/employee/Xanadu.txt";
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (j=0;j<3;j++)
{
stemp[j] = new staples();
System.out.print("Enter your name : ");
stemp[j].setName(reader.readLine());
System.out.println("Enter your age : ");
stemp[j].setAge(Integer.parseInt(reader.readLine()));
}
for (j=0;j<3;j++)
{
System.out.println("Employee number:" + j +" name:"+stemp[j].getName()+" Age:"+stemp[j].getAge());
}
reader.close(); // VERY IMPORTANT TO CLOSE
System.out.println("Now writing the file to Xanadu.txt ");
PrintWriter out = new PrintWriter(
new FileWriter("file_name"));
for (int i = 0; i < 3; i++)
{
out.println("Value at: "+ i + " = "+ stemp[i].getName());
}
System.out.println("Successfully wrote to file");
out.close();
}
catch(java.io.IOException ex)
{
System.out.println("Error is " + ex.getMessage());
}
}
}
程序执行成功,但是当我打开输出文件Xanadu.txt时,什么都看不到。有人可以指导我吗?文件Xanadu.txt的内容是一个包含两个属性name和age的对象stemp数组。无法写入文件的内容
PrintWriter out = new PrintWriter(new FileWriter("file_name"));
你传递一个字符串,上面写着: “FILE_NAME”, 尝试这样做:
PrintWriter out = new PrintWriter(new FileWriter(new File(file_name)));
,我认为它应该工作。由于FileWriter构造函数应该将File作为参数,我想。
file_name
左右不能有引号。如果将它们放在一起,它会被解释为一个字符串,并将数据写入工作目录中名为“file_name”的文件。
PrintWriter out = new PrintWriter(
new FileWriter(file_name));
...将是正确
最好的办法就是简简单单就:试试下面的代码:
fos=new File(filepath);
if(fos.exists() && fos.isFile() && !fos.isDirectory())
{
FileWriter fw=new FileWriter(fos);
BufferedWriter Bw= new BufferedWriter(fw);
Bw.append("i am appending text to the existing file");
}
如果你想通过创建新的文件编写,然后去文件优先搜索,如果不存在,创建并写入相同的数据
使用如下:
fos=new File(filepath);
if(!fos.exists() && !fos.isFile())
{
FileWriter fw=new FileWriter(fos);
BufferedWriter Bw= new BufferedWriter(fw);
Bw.write("i am writing text to the existing file");
}
刚刚在第二个代码片段中错过了一行:fos.createNewFile(); – 2016-02-27 09:59:59
此处不添加任何文件; ''fos.isFile()'暗示'!fos.isDirectory()';在第二个例子中,if语句是多余的;仅仅为'new FileWriter'的'append'参数增加'true'会使两个if语句和整个第二个bck冗余; 'fos'是'File'类型变量的一个愚蠢的名字;这些都不能以任何方式回答实际问题。 – EJP 2016-02-28 03:50:49
感谢,它的工作! – 2012-02-04 18:57:49