zoukankan      html  css  js  c++  java
  • 读取文件中某个字符串前面的内容,两种方法

    方法一:利用PushbackReader,默认有个长度为1的缓冲区,创建对象时需要指出缓冲区的大小。

    public static void function1(File f)throws IOException
    	{
    		try(PushbackReader pr = new PushbackReader(new FileReader(f), 64))
    		{
    			char[] cbuf = new char[32];
    			String lastContent = "";
    			String content = "";
    			int hasRead = 0;
    			while((hasRead = pr.read(cbuf)) > 0)
    			{
    				content = new String(cbuf, 0, hasRead);
    				int target = (lastContent + content).indexOf("new PushbackReader");
    				if(target > 0)
    				{
    					pr.unread((lastContent + content).toCharArray());
    					if(target > 32)
    					{
    						cbuf = new char[target];
    						pr.read(cbuf, 0, target);
    						System.out.println(new String(cbuf, 0, target));
    						break;
    					}
    				}
    				else
    				{
    					System.out.print(lastContent);
    					lastContent = content;
    				}
    			}
    		}
    	}
    

     方法二:利用BufferedReader,这个类有一个readline方法,可以一行一行读取文本,这个方法相对简单。

    public static void function2(File f)throws IOException
    	{
    		try(BufferedReader br = new BufferedReader(new FileReader(f)))
    		{
    			String line = "";
    			int target = 0;
    			while((line = br.readLine())!=null)
    			{
    				if((target = line.indexOf("new BufferedReader") )> 0)
    				{
    					System.out.println(line.substring(0, target));
    					break;
    				}
    				else
    				{
    					System.out.println(line);
    				}
    			}
    		}
    	}
    
  • 相关阅读:
    C#转C++的一点分享
    数据挖掘十大经典算法
    在硅谷面试:如何证明你是最优秀的?
    .NET技术+25台服务器怎样支撑世界第54大网站
    如何将Vim打造成一个成熟的IDE
    24点算法
    12个Web设计师必备的Bootstrap工具
    程序员必须进行的10项投资
    转载:传说中的T检验
    三测
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5635374.html
Copyright © 2011-2022 走看看