A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张庚 中级黑马   /  2013-2-6 20:36  /  1538 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.util.*;
import java.lang.String;

public class WordRev {        
        public static void main(String[] args){      
        Stack<String> stack=new Stack<String>();     
        try{      
                FileReader fn1=new FileReader("File4.txt");//把一个文件按String型入栈,使里面的每一个单词倒序输入到新文件中
                BufferedReader br=new BufferedReader(fn1);         
                String line=br.readLine();         
                String[] str=line.split("");         
                for(int i=0;i<str.length;i++){           
                        stack.push(str[i]);
                 }                                                            
                 FileWriter fn2=new FileWriter("File5.txt");      
                BufferedWriter bw=new BufferedWriter(fn2);      
                while(!stack.isEmpty()){      
                        bw.write(stack.pop()+"");      
                }      
                br.close();      
                bw.close();           
                }catch(IOException e){      
                        e.printStackTrace();      
                }     
        }
} 为什么我的程序只能使一句话倒序啊?应该怎么改?

评分

参与人数 1技术分 +1 收起 理由
金鑫 + 1

查看全部评分

4 个回复

倒序浏览
高手解答下 啊
回复 使用道具 举报
如果要实现多个单词反转功能,用线程循环来做,具体功能没时间写...
回复 使用道具 举报
其实原因很简单,String line=br.readLine();  你的这个方法只读取了文件里的一行。记住readLine()。顾名思义,你懂的。
回复 使用道具 举报
public class WordRev {        
    public static void main(String[] args){      
    Stack<String> stack=new Stack<String>();     
    try{      
            FileReader f1=new FileReader("File4.txt");//把一个文件按String型入栈,使里面的每一个单词倒序输入到新文件中
            StringBuffer bf=new StringBuffer();
            char[] cbuf = new char[1024];
                        int hasRead = 0;
                        while ((hasRead = f1.read(cbuf)) > 0 )
                        {
                                bf=bf.append(new String(cbuf,0,hasRead));
                        }
                        /*
                         * 要把文件首先必须全部读取出来组成一个整体字符串,记住用使用StringBuffer哦。
                         * 你写的很好,受教了。
                         */
            String line=bf.toString();
            
            System.out.println(line);
            String[] str=line.split("");         
            for(int i=0;i<str.length;i++){           
                    stack.push(str[i]);
             }                                                            
             FileWriter fn2=new FileWriter("File5.txt");      
            BufferedWriter bw=new BufferedWriter(fn2);      
            while(!stack.isEmpty()){      
                    bw.write(stack.pop()+"");      
            }      
            bw.close();           
            }catch(IOException e){      
                    e.printStackTrace();      
            }     
    }
}

评分

参与人数 1黑马币 +12 收起 理由
Rancho_Gump + 12

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马