• 读取文件中某个字符串前面的内容,两种方法


    方法一:利用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);
    				}
    			}
    		}
    	}
    
  • 相关阅读:
    01 Vue的起步和插值表达式
    06 扩展的对象的功能
    05 解构赋值
    04 函数之扩展运算符、箭头函数
    03 函数之默认值、剩余参数
    02 模板字符串
    01 let和const命令
    28 Bootstrap排版
    27 Bootstrap的列偏移
    26 Bootstrap的栅格系统
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5635374.html
Copyright © 2020-2023  润新知