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

Posted 32ddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取文件中某个字符串前面的内容,两种方法相关的知识,希望对你有一定的参考价值。

方法一:利用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);
				}
			}
		}
	}

 

以上是关于读取文件中某个字符串前面的内容,两种方法的主要内容,如果未能解决你的问题,请参考以下文章

通过shell循环逐行读取两个txt文件,将两个不同文建内容拼成一个新文件txt

C# 读取TXT文件内容到listview

java去除文本内容的标签跟 

Java中bufferedReader的readline读取不到文件内容,显示的是null。

片段中ListView的setOnItemClickListener

从 Zip 文件中的文件中读取内容