jjzjj

BufferedReader

全部标签

Java BufferedReader 在循环之前检查循环的下一行

我正在解析一个.cvs文件。对于cvs的每一行,我创建一个包含解析值的对象,并将它们放入一个集合中。在将对象放入map并循环到下一个对象之前,我需要检查下一个cvs行是否与实际对象相同,但特定属性值不同。为此,我需要检查缓冲区的下一行,但将循环的缓冲区保持在同一位置。例如:BufferedReaderinput=newBufferedReader(newInputStreamReader(newFileInputStream(file),"ISO-8859-1"));Stringline=null;while((line=input.readLine())!=null){dosomet

java - 如何使用扫描仪逐字符读取输入文件?

我必须使用Scanner,那么是否有nextChar()而不是我可以使用的nextLine()方法?谢谢! 最佳答案 如果您必须使用扫描仪(正如您在编辑中所指出的那样),请尝试以下操作:myScanner.useDelimiter("(?现在myScanner应该逐字符读取。您可能想使用BufferedReader相反(如果可以的话)-它有一个read读取单个字符的方法。例如,这将读取并打印文件的第一个字符:BufferedReaderbr=newBufferedReader(newFileReader("somefile.txt"

java - 同时逐行读取两个文本文件-java

我有2个使用两种不同语言的文本文件,它们逐行对齐。IE。textfile1中的第一行应该等于textfile2中的第一行,依此类推。有没有办法同时逐行读取两个文件?下面是文件的示例,假设每个文件的行数约为1,000,000。文本文件1:ThisisathefirstlineinEnglishThisisathe2ndlineinEnglishThisisathethirdlineinEnglish文本文件2:C'estlapremièreligneenFrançaisC'estladeuxièmeligneenFrançaisC'estlatroisièmeligneenFrançai

Java:从具有缓冲输入的随机访问文件中读取字符串

我以前从未有过JavaIOAPI的亲body验,现在我真的很沮丧。我很难相信它有多么奇怪和复杂,以及完成一项简单的任务会有多么困难。我的任务:我有2个位置(起始字节,结束字节),pos1和pos2。我需要读取这两个字节之间的行(包括起始字节,不包括结束字节)并将它们用作UTF8String对象。例如,在大多数脚本语言中,它将是一个非常简单的1-2-3行(在Ruby中,但对于Python、Perl等,它基本上是相同的):f=File.open("file.txt").seek(pos1)whilef.posJavaIOAPI很快就会变得糟糕;)事实上,我看到了两种从常规本地文件读取行(以

java - 使用 Mockito 模拟文件、FileReader 和 BufferedReader 类

我在要测试的方法中得到了以下代码Filef=map.get("key1")BuffereReaderr=newBufferedReader(newFileReader(f));Stringline=null;do{line=r.readLine();}while(r!=null);我想模拟这个操作,这样我就可以从JUnit测试用例中传递文件的内容。我在下面做了:Mapfles=Mockito.mock(ConcurrentHashMap.class);Filefile=Mockito.mock(File.class);Mockito.when(files.get("key1")).th

java - 多线程运行速度比单进程慢

在学校的一项作业中,我被要求创建一个简单的程序来创建1000个文本文件,每个文件的行数是随机的,通过多线程\单进程计算有多少行。而不是删除这些文件。现在在测试过程中发生了一件奇怪的事情——对所有文件进行线性计数总是比以多线程方式对它们进行计数要快一点,这在我的类里面引发了相当多的学术理论讨论。当使用Scanner读取所有文件时,一切都按预期工作-以大约500毫秒的线性时间和400毫秒的线程时间读取1000个文件然而,当我使用BufferedReader时,线性时间下降到大约110毫秒,线程时间下降到130毫秒。代码的哪一部分导致了这个瓶颈,为什么?编辑:澄清一下,我不是在问为什么Sca

java - 在 Java 中使用 BufferedReader 获取输入

我这里有一个烦人的案例;其中我无法正确接受输入。我一直通过Scanner获取输入,但不习惯使用BufferedReader。输入格式FirstlinecontainsT,whichisanintegerrepresentingthenumberoftestcases.Tcasesfollow.Eachcaseconsistsoftwolines.FirstlinehasthestringS.ThesecondlinecontainstwointegersM,Pseparatedbyaspace.示例Input:2AbcDef12abcabc11到目前为止我的代码:publicstati

Java BufferedReader readline 阻塞?

我想发出一个HTTP请求,然后得到响应,如下所示:URLConnectionc=newURL("http://foo.com").openConnection();c.setDoOutput(true);/*writeanhttprequesthereusinganewOutputStreamWriter(c.getOutputStream)*/BufferedReaderreader=newBufferedReader(newInputStreamReader(c.getInputStream));reader.readLine();但我的问题是,如果我发送的请求需要很长时间才能收到

java - 为用户输入设置超时

是否可以为用户输入设置定时器?等待10秒-进行下一步操作等。我的意思是例如//waitseveralseconds{Strings=newBufferedReader(newInputStreamReader(System.in)).readLine();//waitserverseconds}//nextoperationandetc. 最佳答案 比BenjaminCox的回答更简单的方法是做类似的事情intx=2;//wait2secondsatmostBufferedReaderin=newBufferedReader(new

java - 在 Java 中逐行读取文本文件的最快方法

对于日志处理,我的应用程序需要逐行读取文本文件。首先我使用了BufferedReader的函数readLine()但我在网上看到BufferedReader在读取文件时很慢。之后,我尝试将FileInputStream与FileChannel和MappedByteBuffer一起使用,但在这种情况下,没有类似于readLine()的功能,所以我在我的文本中搜索换行符并对其进行处理:try{FileInputStreamf=newFileInputStream(file);FileChannelch=f.getChannel();MappedByteBuffermb=ch.map(Fil