标题:请交一下关于file类的问题!
只看楼主
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
结帖率:100%
 问题点数:0 回复次数:2 
请交一下关于file类的问题!
调用PrintWriter会使存在的a.txt文件内容被清空,如果我希望读取a的内容并改变后把改变后
的内容存回a.txt文件,是不是一定要建立一个b.txt文件,先把改变后的内容写入b,再从b写入a
呢?
搜索更多相关主题的帖子: file 
2014-03-04 19:04
琢石成器
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:160
注 册:2013-11-10
得分:0 
如果知识在程序中操作的话,可以用ArrayList暂存读入的内容,对ArrayList修改就行,代码如下。当然如果只是在记事本中操作的话,那就只需要读出、写入就行了。

程序代码:
public class Test{
    
    public static void main(String[] args){
        new Test();
    }
    
    public Test(){
        BufferedReader br=null;
        BufferedWriter bw=null;
        try {
            //先读出记事本中的内容
            br=new BufferedReader(new FileReader("H:\\a.txt"));
            String s="";
            ArrayList<String> array=new ArrayList<String>(); //创建ArrayList用来存放读入的内容
            while((s=br.readLine())!=null){
                array.add(s);
            }
            
            //再写入
            //比如在中间添加一段字符串:“我是后添加的内容”
            array.add(1, "我是后添加的内容");
            bw=new BufferedWriter(new FileWriter("H:\\a.txt"));
            for(int i=0;i<array.size();i++){
                bw.write(array.get(i)+"\r\n");
            }
            
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            
            try {
                if(br!=null){
                    br.close();
                }
                if(bw!=null){
                    bw.close();
                }
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }
}



比如修改前:
lsfaddasf


fdsafjlsadj


sdflawej


修改后就变成这样了:
lsfaddasf
我是后添加的内容


fdsafjlsadj


sdflawej
2014-03-06 23:15
琢石成器
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:160
注 册:2013-11-10
得分:0 
如果知识在程序中操作的话,可以用ArrayList暂存读入的内容,对ArrayList修改就行,代码如下。当然如果只是在记事本中操作的话,那就只需要读出、写入就行了。

程序代码:
public class Test{
    
    public static void main(String[] args){
        new Test();
    }
    
    public Test(){
        BufferedReader br=null;
        BufferedWriter bw=null;
        try {
            //先读出记事本中的内容
            br=new BufferedReader(new FileReader("H:\\a.txt"));
            String s="";
            ArrayList<String> array=new ArrayList<String>(); //创建ArrayList用来存放读入的内容
            while((s=br.readLine())!=null){
                array.add(s);
            }
            
            //再写入
            //比如在中间添加一段字符串:“我是后添加的内容”
            array.add(1, "我是后添加的内容");
            bw=new BufferedWriter(new FileWriter("H:\\a.txt"));
            for(int i=0;i<array.size();i++){
                bw.write(array.get(i)+"\r\n");
            }
            
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            
            try {
                if(br!=null){
                    br.close();
                }
                if(bw!=null){
                    bw.close();
                }
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }
}



比如修改前:
lsfaddasf


fdsafjlsadj


sdflawej


修改后就变成这样了:
lsfaddasf
我是后添加的内容


fdsafjlsadj


sdflawej
2014-03-06 23:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428007-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015300 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved