Tag: readline

在java中读取文本文件 – 为什么跳过行?

我是新来的,只是努力尝试获取文本文件。 在每一行上都有一个单词和相应的数字代码。 我们的想法是阅读它并将代码和单词放在单独的变量中。 我对这个领域了解不多,但我一直在网上四处寻找并提出以下建议: try{ FileReader freader=new FileReader(f); BufferedReader inFile=new BufferedReader(freader); while (inFile.readLine()!=null){ String s=null; s=inFile.readLine(); System.out.println(s); String[] tokens=s.split(” “); string=tokens[0]; System.out.println(string); code=tokens[1]; System.out.println(code); c.insert(string, code); }//end outer while }//end try 问题是未读取文本文件的第一行。 然后它每次都跳过一条线! (换句话说,只读取第1行,第3行,第5行,第7行等) 正如我上面所说,我是新手,我不太了解我在网上不同网站上看到的所有不同的东西(比如为什么一切都是bufferedThis或bufferedThat,或者如何正确使用所有的tokenizer东西)。 我在不同的时间尝试了一些不同的东西,最后得到了这个。

Java使用分隔符读取大文本文件

我正在尝试以下列forms阅读大型文本文件: datadfqsjmqfqs+dataqfsdqjsdgjheqf+qsdfklmhvqziolkdsfnqsdfmqdsnfqsdf+qsjfqsdfmsqdjkgfqdsfqdfsqdfqdfssdqdsfqdfsqdsfqdfsqdfs+qsfddkmgqjshfdfhsqdflmlkqsdfqdqdf+ 我想在文本文件中将此字符串作为一个大的java字符串读取。 这可能吗? 我知道使用split方法。 它可以逐行读取它,但我真正需要的是将这个长文本字符串拆分为“+”符号。 之后我想将它存储为数组,arraylist,list,… 谁能帮我这个? 因为互联网上的每个信息都只是逐行读取文件。 提前致谢!

Java的readline-like库

你使用哪个类似readline的Java库? 像“readline”这样的库我指的是用于编辑控制台输入的库,支持历史记录,制表符完成以及类似的东西。 我正在寻找一个,我无法从众多选择中选择( jLine – unmaintained , java-readline – 2003年最后一次发布,其他?)

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

对于日志处理,我的应用程序需要逐行读取文本文件。 首先我使用了BufferedReader的readLine()函数,但我在网上读到BufferedReader在读取文件时速度很慢。 之后我尝试将FileInputStream与FileChannel和MappedByteBuffer一起使用,但在这种情况下,没有类似于readLine()的函数,所以我在文本中搜索换行符并处理它: try { FileInputStream f = new FileInputStream(file); FileChannel ch = f.getChannel( ); MappedByteBuffer mb = ch.map(FileChannel.MapMode.READ_ONLY, 0L, ch.size()); byte[] bytes = new byte[1024]; int i = 0; while (mb.hasRemaining()) { byte get = mb.get(); if(get == ‘\n’) { if(ra.run(new String(bytes))) cnt++; for(int j = 0; j<=i; j++) bytes[j] = 0; i = […]

DataInputStream不推荐使用readLine()方法

我在java 6.使用DataInputStream in = new DataInputStream(System.in); 阅读用户输入。 不推荐使用readLine()时。 阅读用户价值的工作是什么? DataInputStream in = new DataInputStream(System.in); int num; try { num = Integer.parseInt(in.readLine()); //this works num = Integer.parseInt(in); //just in doesnt work. } catch(Exception e) { } 请在不推荐使用readLine()时解释。

Java中BufferedReader.readLine()的最大行长度?

我使用BufferedReader的readLine()方法从套接字读取文本行。 没有明显的方法来限制读取行的长度。 我担心数据源可能(恶意地或错误地)写入大量数据而没有任何换行符,这将导致BufferedReader分配无限量的内存。 有没有办法避免这种情况? 或者我是否必须自己实现readLine()的有界版本?

使用Java读取文件或流的最强大方法(防止DoS攻击)

目前我有以下代码用于读取inputStream。 我将整个文件存储到StringBuilder变量中,然后处理该字符串。 public static String getContentFromInputStream(InputStream inputStream) // public static String getContentFromInputStream(InputStream inputStream, // int maxLineSize, int maxFileSize) { StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String lineSeparator = System.getProperty(“line.separator”); String fileLine; boolean firstLine = true; try { // Expect some function which checks for line size limit. // eg: reading […]

我应该如何阅读缓冲读卡器?

我有以下从缓冲读取器读取的示例: while ((inputLine = input.readLine()) != null) { System.out.println(“I got a message from a client: ” + inputLine); } 只要缓冲读卡器中出现某些内容(本例中为input ,就会执行循环println的代码。 在我的例子中,如果客户端应用程序向套接字写入内容,则将执行循环中的代码(在服务器应用程序中)。 但我不明白它是如何工作的。 inputLine = input.readLine()等待缓冲读取器中出现某些内容,当出现某些内容时,它返回true并执行循环中的代码。 但是当null可以返回。 还有一个问题。 上面的代码取自throws Exception的方法,我在Thread的run方法中使用了这段代码。 当我在run之前尝试放置throws Exception ,编译器会抱怨:重写方法不会抛出exception。 没有throws exception我还有另一个来自编译器的抱怨:未报告的exception。 那么,我该怎么办?

使用扫描仪读取行

为更多读者编辑 :问题是我的输入文件已损坏。 我不明白我做错了什么: 我使用的是这段代码: File f = new File(“C:\\Temp\\dico.txt”); BufferedReader r = null; try { r = new BufferedReader(new FileReader(f)); String scan; while((scan=r.readLine())!=null) { if(scan.length()==0) {continue;} //treatment } } catch (FileNotFoundException ex) { Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex); } finally { if(r!=null) try { r.close(); } catch (IOException ex) […]