使用PrintWriter写入文本文件
使用Scanner和BufferedReader读取文本文件请参考:https://blog.csdn.net/qq_43524683/article/details/99646584
使用DataInputStream和DataOutputStream读写二进制文件请参考:https://blog.csdn.net/qq_43524683/article/details/100544798
1. 主函数
public static void main(String[] args){
Demo demo=new Demo();
demo.coverWriter(); 覆盖式写入文件
demo.appendWriter(); 追加式写入文件
}
主函数中将两种方式 分别封装在两个方法中,注意使用注释。
2. 覆盖式写入
//覆盖式写入文件
public void coverWriter(){
String fileName="F:\\IDEA_Codes\\WriteTextFiles\\src\\f.txt";
PrintWriter toFile=null;
try{
toFile=new PrintWriter(fileName); //将数据流outStream连接到名为f.txt的文件
//此方法将文件连接到数据库时,总是从一个空文件开始
//若文件已存在,则原来的文件内容丢失;若不存在,则重新创建一个空文件
} catch (FileNotFoundException e) {
//e.printStackTrace();
System.out.println("PrintWriter error opening the file:"+fileName);
System.exit(0);
}
System.out.println("Please input four lines of text:"); //本例中控制输入4行
Scanner keyboard=new Scanner(System.in); //使用Scanner获得输入
for(int count=1;count<=4;count++){
String line=keyboard.nextLine(); //获取一行内容
toFile.println(count+". "+line); //PrintWriter的println写文件方法与System.out.println写屏幕方法类似
}
System.out.println("Four lines were written to "+fileName);
toFile.close(); //显示关闭数据流,避免数据丢失
}
运行程序,输入下列内容:
To see the world in a grain of sand,
a heaven in a wild flower;
Hold infinity in the palm of your hand,
and eternity in an hour.
则可以看到运行结果。再次打开相应的文件,则:
PrintWriter构造函数为Java 5的新内容,注意JDK的版本。
3. 追加式写入
上例中若f.txt内容已经存在,重新运行程序,原有的内容将会丢失。在本方法中将输入的内容追加到文件的末尾。
//追加式写入文件
public void appendWriter(){
String fileName="F:\\IDEA_Codes\\WriteTextFiles\\src\\f.txt";
FileWriter fw=null;
PrintWriter toFile=null;
try{
fw=new FileWriter(fileName,true); //本代码中增加FileWriter //可以抛出IOException异常
toFile=new PrintWriter(fw); //将数据流outStream连接到名为f.txt的文件 //可以抛出FileNotFoundException异常
} catch (FileNotFoundException e) {
//e.printStackTrace();
System.out.println("PrintWriter error opening the file:"+fileName);
System.exit(0);
} catch (IOException e) {
//e.printStackTrace();
System.out.println("FileWriter error opening the file:"+fileName);
System.exit(0);
}
System.out.println("Please input four additional lines of text:"); //本例中控制输入4行
Scanner keyboard=new Scanner(System.in); //使用Scanner获得输入
for(int count=1;count<=4;count++){
String line=keyboard.nextLine(); //获取一行内容
toFile.println("Translation "+count+": "+line); //PrintWriter的println写文件方法与System.out.println写屏幕方法类似
}
System.out.println("Four lines were written to "+fileName);
toFile.close(); //显示关闭数据流,避免数据丢失
}
以上代码在前面的基础上增加了FileWriter,FileWriter类中有一个构造函数,第一个参数为文件名,第二个参数决定是否追加到该文件。本例中,输入如下内容:
在一粒沙砾中看见世界;
在一朵野花中窥见天堂;
把无限握于掌中;
将永恒置于刹那。
再次打开文件,则可看到输入内容增加到了文件的末尾。