黑马程序员技术交流社区
标题:
文件重写会写掉原来的文件吗?
[打印本页]
作者:
偏執旳、靑春
时间:
2013-3-1 10:55
标题:
文件重写会写掉原来的文件吗?
class FileWriteDemo
{
FileWrite fw=new Filewrite("123.txt",false);//false说明覆盖
fw.write("dfsdf");
fw.close();
}
假说我原来文件里面有一篇很长的文章,现在只重写dfsdf五个字符进去
那么我的这个文章是只有这个五个字符呢?还是五个字符只覆盖了前面一小段位置
作者:
刘圣繁
时间:
2013-3-1 11:10
FileWriter
看看API文档啊
public FileWriter(String fileName,
boolean append)
throws IOException根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
参数:
fileName - 一个字符串,表示与系统有关的文件名。
append - 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。
很显然 果果为false 会从文件开始处开始写 当然是你写多少就会覆盖多少 “五个字符只覆盖了前面一小段位置”
实现证明正确
作者:
Benwolf0818
时间:
2013-3-1 11:11
覆盖原来的文件,只有5个字符
作者:
吴硕
时间:
2013-3-1 11:30
本帖最后由 吴硕 于 2013-3-1 11:32 编辑
如下执行后,123.txt中已经没有内容了
class FileWriterTest
{
public static void main(String[] args) throws Exception
{
FileWriter fw = new FileWriter("123.txt", false);
fw.flush();
fw.close();
}
}
复制代码
说明FileWrite fw=new Filewrite("123.txt",false);已经把文件的内容清空了
其实fw.write("dfsdf");的write方法默认就应该是在文件末尾续写,如下代码可以看出
class FileWriterTest
{
public static void main(String[] args) throws Exception
{
FileWriter fw = new FileWriter("123.txt", false);
fw.write("asdff");
fw.write("xxxx");
fw.flush();
fw.close();
}
}
复制代码
作者:
侯丛政
时间:
2013-3-1 12:01
首先, 你的FileWriter写成了FileWrite.
对于, public
FileWriter
(
File
file, boolean append),
boolean append = true时, 如果已有file 则在此文件的末尾添加数据
boolean append = false时, 如果已有file 则会重新创建一个file并覆盖之前的.
如果没有file 那就自己创建一个并写入数据
public class FileWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("d:\\test.txt", false);
fw.write("Jay");
fw.close;
}
}
所以向上面这样写代码是会覆盖里面所有内容的
作者:
顾传文
时间:
2013-3-1 13:09
FileWrite fw=new Filewrite("123.txt",false);//false说明是覆盖。
那么覆盖的原理是什么?
首先,这句先将123.txt这个文件删除,让后再重新创建123.txt文件。
不管你原来的文件里面有多少数据,都被删除了,而且Java中删除的文件不走回收站,重新创建的123.txt这个文件的数据是空的。
补充一点:RandAccessFile类创建文件时,假如文件存在时,是不会覆盖原来的文件的。
作者:
贾振凯
时间:
2013-3-1 14:06
刘圣繁 发表于 2013-3-1 11:10
FileWriter
看看API文档啊
public FileWriter(String fileName,
呃。。。。。。。。我实验的是全部覆盖:
public class SubClass extends FatherClass {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("jzk.txt");
fw.write("你好,我叫贾振凯!");
fw.close();
FileWriter fw2 = new FileWriter("jzk.txt",true);
fw2.write("真的吗?");
fw2.close();
}
}求教你怎么试验的?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2