| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:stack栈
只看楼主 加入收藏
didozhp
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2009-8-7
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:3 
stack栈
如何能将stack中的内容保存到指定的文件中去,这是一个程序片段,我想把System.out.println(stack); // 找到一个结果   不是直接输出,而是输入到test.txt文件中,求帮忙,谢谢
程序代码:
private Stack<Object> stack = new Stack<Object>(); 
    File f = new File("d:"+File.separator+"test.txt");
    public void getSequence(Object[] arr, int begin, int num) {  
        if (num == 0) {  
           
            System.out.println(stack); // 找到一个结果
            
         } else {  
          // 循环每个可用的元素  
          for (int i = begin; i < arr.length; i++) {  
             
             stack.push(arr[i]);            // 当前位置数据放入结果堆栈
            
           
             swap(arr, begin, i);          // 将当前数据与起始位置数据交换
            
           
             getSequence(arr, begin + 1, num - 1);     // 从下一个位置查找其余的组合 
            
            
             swap(arr, begin, i);   // 交换回来 
            
             stack.pop();   // 去除当前数据 
           }  
         }  
       }  

 
搜索更多相关主题的帖子: stack 
2010-09-07 14:34
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:14 
程序代码:
public void saveFile(Stack<Object> stack,File file){//该方法每次将覆盖file文件
        Stack<Object> tempstack=(Stack<Object>) stack.clone();
        FileOutputStream fos=null;
        BufferedWriter writer=null;
        try {
            fos=new FileOutputStream(file);
            writer=new BufferedWriter(new OutputStreamWriter(fos));
            while(!tempstack.isEmpty()){
                Object ob=tempstack.pop();
                writer.write(ob.toString());    //请自己覆盖Object中的toString方法,以便实现输出的String
                writer.newLine();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(writer!=null){
                try {
                    writer.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(fos!=null){
                try {
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
2010-09-07 15:07
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:0 
程序代码:
public void saveFile(Stack<Object> stack,File file){//所有找到的stack都写入同一个文件中
        Stack<Object> tempstack=(Stack<Object>) stack.clone();
        FileWriter fw=null;
        BufferedWriter writer=null;
        try {
            fw=new FileWriter(file, true);
            writer=new BufferedWriter(fw);
            while(!tempstack.isEmpty()){
                Object ob=tempstack.pop();
                writer.write(ob.toString());    //请自己覆盖Object中的toString方法,以便实现输出的String
                writer.newLine();
            }
            writer.newLine();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(writer!=null){
                try {
                    writer.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(fw!=null){
                try {
                    fw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
2010-09-07 15:29
didozhp
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2009-8-7
收藏
得分:0 
回复 3楼 shellingford
我自己改了下,解决了,但还是谢谢你
程序代码:
private Stack<Object> stack = new Stack<Object>();
    public void getSequence(Object[] arr, int begin, int num)
            throws FileNotFoundException {
        if (num == 0) {
            //System.out.println("==================");
            //System.out.println(stack); // 找到一个结果
            sb.append("第"+i+"条"+stack.toString()+"\r\n");
            i++;


        } else {
            // 循环每个可用的元素
            for (int i = begin; i < arr.length; i++) {

                stack.push(arr[i]); // 当前位置数据放入结果堆栈

                swap(arr, begin, i); // 将当前数据与起始位置数据交换

                getSequence(arr, begin + 1, num - 1); // 从下一个位置查找其余的组合

                swap(arr, begin, i); // 交换回来

                stack.pop(); // 去除当前数据
            }

            PrintStream pw = new PrintStream(new File("d:"+File.separator+"abc.txt"));
            pw.append(sb);
            pw.flush();

        }
    }

 
2010-09-07 18:40
快速回复:stack栈
数据加载中...
 
   



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

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