請問:已知一字符串"###",如何判斷它在一個文本"file.txt"中是否存在?
3Q!!!

解决方案 »

  1.   

    流读入,组合成长字符川,再用String.indexOf("###");判断
      

  2.   

    按行读,再判断String.indexOf("###") >=0 ?;
    这样不需要太大内存。
      

  3.   

    import java.io.*;public class Test {    public static void main(String[] args) {
            try {
                File file = new File("file.txt");
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        new FileInputStream(file)));
                String line = reader.readLine();
                StringBuffer buffer = new StringBuffer();
                while (line != null) {
                    buffer.append(line);
                    line = reader.readLine();
                }
                reader.close();
                String text = buffer.toString();
                if (text.indexOf("###") >= 0) {
                    System.out.println("included");
                } else {
                    System.out.println("excluded");
                }
            } catch (Exception e) {        }
        }}
      

  4.   

    rower203(华仔) :
    呵呵。你有没有考虑这个情况
    I want eat some banana, ##
    #,very good
    yes.
    end
      

  5.   

    要结合实际需求,
    只有pinksunday (pinksunday)知道那种更适合他的实际需求了,哈哈。
      

  6.   

    通常情况下:
    import java.io.*;public class ReadLineFromFile {
    private boolean judge(String content, String fileName){
            try {
                File file = new File(fileName);
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        new FileInputStream(file)));
                String line = reader.readLine();            while (line != null) {
                    if (line.indexOf(content) >= 0) {
                     reader.close();
                        return true;
                    }
                    line = reader.readLine();
                }
                reader.close();
                return false;
            } catch (Exception e) {        }
    return false;
    }    public static void main(String[] args) {
         ReadLineFromFile rlff = new ReadLineFromFile();
         System.out.println("Include ? : " + rlff.judge("###", "file.txt"));
        }
    }
      

  7.   

    謝謝,
    我用莫飛的代碼,做了一點改動就可以了:
    //File file = new File("D:\file\2.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\file\\2.txt")));
      

  8.   

    D:\file\2.txt文件很大时莫飛的代碼机器内存一定要暴!
    而我的不会。
      

  9.   

    下面代碼能通過編譯,在執行時提示:
    Exception in thread "main" java.lang.NoClassDefFoundError: File11
    爲什麽阿?怎麽解決呢?import java.io.*;class File1
    {
        public static void main(String[] args)
        {
             try
             {   
                //從文件1中取出特定的字符串
                 BufferedInputStream in1=new BufferedInputStream(new FileInputStream ("D:\\file\\1.txt"));
                 DataInputStream in=new  DataInputStream(new LineNumberInputStream(in1));
                 String line=in.readLine ();
                 line=line.substring(0,line.indexOf("/"));
                         //System.out.println(line);
                 String needed=line.substring(line.lastIndexOf("  ")+4);
               
                 //比較字符串是否在2.txt中存在
                 BufferedReader reader = new BufferedReader(new InputStreamReader
                                          (new FileInputStream("D:\\file\\2.txt")));
                 String line1 = reader.readLine();
                 StringBuffer buffer = new StringBuffer();
                      while (line1 != null) 
                                     {
                                         buffer.append(line1);
                                         line1 = reader.readLine();
                                     }
               //Reader.close();
               String text = buffer.toString();
                           if (text.indexOf(needed) >= 0)
                             {
                                   System.out.println("included");
                                   
                              } 
                       // System.out.println(needed); 
                   
                in.close();
                }
            
            catch(IOException e)
               {e.printStackTrace(); }
       }
    }
      

  10.   

    你的类是File1,不是File11,呵呵。
      

  11.   

    其实在每行结尾再加一个特殊的字符也不会影响的,比如加一个"/n",为什么非要处理?只要/n不包括在###中是不会影响结果的:
    while (line != null) {
                    buffer.append(line);
                    buffer.append("/n");
                    line = reader.readLine();
                }