Java FileReader与FileInputReader。分裂与模式
我正在处理一个2G左右的文件。我想逐行阅读文件,找出一些具体的术语。 我可以更好地使用哪个类:FileReader还是FileInputStream? 我怎样才能有效地找到特定的单词。我只是在使用split()方法,但是我可以将java.util.regex.Pattern类与java.util.regex.Matcher类结合使用 因此,问题是: 我可以使用哪个类:FileReader还是FileInputStream? 我可以使用split方法还是regex类Java FileReader与FileInputReader。分裂与模式,java,split,filereader,fileinputstream,Java,Split,Filereader,Fileinputstream,我正在处理一个2G左右的文件。我想逐行阅读文件,找出一些具体的术语。 我可以更好地使用哪个类:FileReader还是FileInputStream? 我怎样才能有效地找到特定的单词。我只是在使用split()方法,但是我可以将java.util.regex.Pattern类与java.util.regex.Matcher类结合使用 因此,问题是: 我可以使用哪个类:FileReader还是FileInputStream? 我可以使用split方法还是regex类 有人能回答这个问题吗?Than
有人能回答这个问题吗?Thans.您可能需要使用一个读卡器(可能用a包装),因为您使用的是字符串数据,而不是二进制数据。您应该预编译您的模式()。除此之外,从您的描述中还不清楚您是否应该使用,或者使用匹配器是否更合适
请注意,这相当于
Pattern.compile(regex).split(str,limit)
,因为您使用的是字符串数据,而不是二进制数据。您应该预编译您的模式()。除此之外,从您的描述中还不清楚您是否应该使用,或者使用匹配器是否更合适
请注意,这相当于
Pattern.compile(regex).split(str,limit)
最好的选择是使用BufferedReader
(对于其readLine()
方法)包装InputStreamReader
(对于其指定编码的能力)包装FileInputStream
(对于实际读取文件):
FileReader
使用平台默认编码,这通常是一个坏主意,使得该类主要成为不知道潜在问题的开发人员的陷阱
如果您只想在行中查找子字符串,
String.indexOf()
是最有效的方法;如果您确实在寻找特定的模式,那么使用正则表达式会更好。最好的选择是使用BufferedReader
(用于其readLine()
方法)包装InputStreamReader
(用于其指定编码的能力)包装FileInputStream
(用于实际读取文件):
FileReader
使用平台默认编码,这通常是一个坏主意,使得该类主要成为不知道潜在问题的开发人员的陷阱
如果您只想在行中查找子字符串,String.indexOf()
是最有效的方法;如果您确实在寻找特定的模式,那么使用正则表达式会更好。有一个readLine()
方法,可以用于逐行读取。读卡器
(和写卡器
)类可用于字符串数据,其中输入流
(和输出流
)应用于二进制数据(字节数组)
具有可用于逐行读取的readLine()
方法。读卡器
(和写卡器
)类可用于字符串数据,其中输入流
(和输出流
)应用于二进制数据(字节数组)
什么是FileInputReader?你在哪里找到的什么是FileInputReader?你在哪里找到的
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(name), encoding));
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = null;
while((line = reader.readLine()) != null) {
// Do something with the line
}