怎么利用readLine()方法读取一个文本文件的最后一行并打印出来?
public static void main(String[] args) {
    File file = new File("D:/ALMR_access_log_L1_1.log");
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new FileReader(file));
        String temp = reader.readLine();
        while(temp != null) {
            System.out.println(temp);
            temp = reader.readLine();
        }

// System.out.println(temp);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

oo
0

3个回答

可以用列表存储,然后输出最后一个元素吧
List list=new LinkedList();
try {
reader = new BufferedReader(new FileReader(file));
String temp = null;
while(temp=reader.readLine() != null) {
list.add(temp);
}
System.out.print(list.getLast());
...

0

楼上得方法可以实现,通过数组和集合得索引来实现。下面说说我的:
[quote]
public static void main(String[] args) {
File file = new File("D:/ALMR_access_log_L1_1.log");
BufferedReader reader = null;
String result;
try {
reader = new BufferedReader(new FileReader(file));
String temp = reader.readLine();
while(temp != null) {
System.out.println(temp);
temp = reader.readLine();
if(temp != null){
result=temp;
}
}
System.out.println(result);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
[/quote]

利用最后一行为null则不赋值得原理,这样得到的最后一行始终是有值的。

0

请问文件过大的时候,用list或者数组难道还能跑? 不会异常?
边边耍去....

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python:读取问题件并打印每一行
From_file=open('D:\\python\\A\\tianqi.txt','a')ntry:n for each_line in From_file:n print(each_line)n #print(From_file.read())nfinally:n From_file.close()nnnn使用try和finally防止忘记关闭文件。
RandomAccessFile读取文本最后一行以及倒序读取文本
文本文件,末尾是否为空行是有区别的。前者末行是空行,后者是末行不是空行。这个并不是百度里说的这是文本文件的显示效果而且说这两个文件是一样的,其实这是不对的。区别在于,前者最后的字符为": 6\r\n",而后者最后的字符只是": 6".也就是说只有行与行之间才有\r\n,而第一行的开头没有\r\n,最后一行若不是空行那最后一行末尾也没有\r\n。nRandomAccessFile因为指针可以随意移动,所以读取最后一行很方便,尤其在读取大文件时不会因为需要从头开始读而浪费内存。
字节流转换成字符流(利用readLine()方法)实现键盘录入一行打印一行
package yuwei.com;nnimport java.io.BufferedReader;nimport java.io.IOException;nimport java.io.InputStream;nimport java.io.InputStreamReader;nn/*n * 需求:n * 读取键盘录入n * n * */npublic class ReadIn {nn p...
AIX系统下获取指令输出最后一行的值
最近需要做一个informix数据库的性能指标获取:需要获取到对应的checkpoint的值n然后通过自己的查找,需要将某个指令的执行结果进行截取,就能获得对应的数据,然后自己了解了一下截取最后一行的指令。nonstat -g ckp | grep CKPTINTVL | awk '{print $5}' | tail -1n这个指令截取了对应的第五列的最后一行数据。成功实现了自己想要达到的目的。...
python 试题:写一段程序逐行读入一个文本文件,并在屏幕上打印出来。
写一段程序逐行读入一个文本文件,并在屏幕上打印出来。rnrnrnrnrnrnrnrnrn参考答案:rnrnf = open(filename)  rnwhile True:  rn    line = f.readline()  rn    if not line: break  rn    print(line)  rnf.close()
python中读取文件函数read()、readline()、readlines()的区别
python中读取文件函数read()、readline()、readlines()的区别
c#读取文件一行一行读取
FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read);rn StreamReader read = new StreamReader(fs, Encoding.Default);     rn     string   strReadline ;rn                while ((st
IO流读取本地的文件,并且在控制台打印出来
n 第一步:我们在D盘根目录下写个HelloWorld这个入门程序,你可能还没有删除。那我们就拿这个java文件来试试n n nnn nn第二步:打开你习惯使用的idea工具,复制以下代码,注意:路径,包名,还有类名n n npackage javaexercises;nnimport java.io.BufferedReader;nimport java.io.FileInputStream;n...
Python迭代器,一行一行读取文本
在处理文本的时候,首先要做的是读取一下文本文件,一般的方法如下:rncorpus = open('这个位置放文件绝对路径', 'r').readlines()rn将这个文本文件按行读取,每行一个元素放到一个list中。但是需要将整个文本文件先全部装入内存中。rn如果文本文件太大,不能一次性读入内存怎么办。要使用Python中的迭代器,一次读取一个成员,然后对这个成员进行某种操作就可以了。rn具体方
自己编写BufferedReader中的readLine方法
rnimport java.io.*;/*readLine方法的原理是将除回车符以外的字符全部存储到一个字符数组中(本例中用StringBuilder代替),等到读完一行后将其返回自己编写一个BufferedReader对象中的readLine方法*/class MyReaderLine{ private FileReader r; MyReaderLine(FileReader r){  thi...
读取文本文件的最后n行
要求,打印出文本文件的最后n行数据nnn /**n * 读出文件的最后n行n *n * @param file 文件n * @param num 第几行n * @returnn */n public static List<String> readLastNLine(File file, int num) {n if...
Python逐行读取文件,到最后一行结束
之前习惯用MATLAB写脚本,现在正上手kaldi,MATLAB写脚本的话,以后会有诸多不方便之处,抓紧学习Python,nMATLAB中有feof函数,这个函数的功能是判断指针是否指到最后一行,如果是则返回为真。由于Python中没有这个函数,n所以要加个判断,判断读取的字符串是否为空,如果为空,则结束函数nif not line:n brekn完整程序如下:ndicFile =
Java中使用BufferedReader的readLine()方法和read()方法来读取文件内容
目标:读文件nn编程时,有很多时候需要读取本地文件,下面介绍一下读取方式:nn读单行文件nnnnnnnnn 1 package com;n 2 import java.io.*;n 3 import java.util.ArrayList;n 4 import java.util.List;n 5 n 6 import javax.print.DocFlavor.CHAR_ARRAY;n ...
BufferReader 的 readline 隔行读取的问题
txt 文本内容如下:春棉不觉晓n处处闻啼鸟n夜来风雨声n花落知多少刚开始写的代码如下:n@Testn public void print() {n String parentFile = System.getProperty("user.dir");n String filePath = parentFile + File.separator + "num.txt
从Python中readline()函数读取的一行内容中去掉换行符\n
从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n。rn方法是使用strip()函数。rn例子如下:rnfile = open('test.txt')nnline = readline(file)nnwhile line:n line = line.strip('\n')n line = readline(fil
使用BufferReader类的readLine()方法注意问题
public  String   readLine():是读取到没有数据时就返回null(因为其它read()方法当读到没有数据时返回-1),而实际上readLine()是一个阻塞函数,当没有数据读取时,就一直会阻塞在那,而不是返回null。n读取一个文本行,通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。n返回:到达流末尾,就返回null。
Java中使用BufferedReader中的readLine方法遇到的一些问题(readLine阻塞)
在做一个Socket通信的项目的时候使用了BufferedReader,并用readLine函数读取信息,但是遇到了一个问题,就是把readLine放到了读取消息的循环外面,然后程序就再也执行不到下面一句了,对应GitHub连接(以后更新会在GitHub博客更新,以GitHub博客为准)。nnn public void run() {n try {n String LineString...
Go语言_Go_Golang 逐行读取文件
示例代码rn// File_test2 project main.gonpackage mainnnimport (n "bufio"n "fmt"n "io"n "os"n "strings"n)nnfunc ReadLine(fileName string, handler func(string)) error {n f, err := os.Open(fileName)n if err !
node.js使用readline按行读取文件内容
node.js使用readline按行读取文件内容1.实现代码var fs = require('fs');nvar readline = require('readline');nn/*n* 按行读取文件内容n* 返回:字符串数组n* 参数:fReadName:文件名路径n* callback:回调函数n* */nfunction readFileToArr(fReadName,cal...
使用批处理提取文件夹下所有文本文件最后一行
windows下要提取文件夹下所有文本文件的最后一行到一个文件中,行前面加上待提取文本的文件名,可新建bat文件,写入以下批处理代码n@echo offnset blank= nsetlocal enabledelayedexpansionnfor /f %%i in ('dir /b^|find /v "bat"') do (nfor /f "tokens=*" %%j in (%%i) d
java 倒序读取文件(最后一行开始读取)
[code="java"]package cn.com.songjy.test.io;rnrnimport java.io.FileNotFoundException;rnimport java.io.IOException;rnimport java.io.RandomAccessFile;rnrn/**rn * http://bbs.csdn.net/topics/190181198rn * ...
JAVA中IO流文本文件的操作(BufferedWriter和BufferedReader 缓冲区,readLine用法)
JAVA 中 字符流的缓冲区rn分为了BufferedWriter 和BufferedReaderrnrn先讲BufferedWriterrn作用:rn缓冲区要结合流才可以使用,而且在流的基础上对流的功能进行了增强。我们也可以说,在我们以后的实际运用之中,为了增强一下IO流的读写能力,我们就要加入缓冲区这个角色,我们可以理解是为了提高效率而这样做的。rn另外还有一点是,在用到缓冲区就要记得刷新。rn解释:rn我...
使用readLine()方法遇到的坑
下午玩 TCP/IP 的 Socket 通信时,使用 BufferedReader 的 readLine() 遇到了一个坑,现在终于解决了,特此记录下来。nnn程序很简单,客户段从控制台读取用户输入,然后发送至服务器端,主要代码如下nnnnn客户端:n  Socket s = new Socket("192.168.0.4", 20022);n BufferedReader re
BufferReader中的ready()和readLine()方法的使用和注意事项
问题描述nn问题产生是我在访问一个txt文件,读取访问后内容出现的,当使用ready()方法判断时候,会产生读取内容是空的情况,因此对ready()和ReadLine()方法进行详细的了解。nn解释nnnreadLine()方法 n 我们常用的去判断读取回来的数据是否为空的时候通常用的判断方法是:nn while((str = br.readLine()) != null) {n ...
字符读取流缓冲区-读一行的方法readLine()
/*字符读取流缓冲区-读一行的方法readLine()n字符读取流缓冲区:n该缓冲区提供了一个一次读一行的方法readLine(),方便与对文本数据的获取。n当返回null时,表示读到文件末尾。n*/nimport java.io.*;nclass BufferedReaderDemon{n public static void main(String[] args) throws IOEx
java写一个程序,实现从文件中读出文件内容,并将其打印在屏幕当中,并标注上行号
*    4.java写一个程序,实现从文件中读出文件内容,并将其打印在屏幕当中,并标注上行号rn*    rn*    解题思路:rn*       1,显示行号,利用BufferedReader 中的  readLine();rn*       2,设定lineNumber,rn*       3,读取一行,打印一行, 则 lineNumber++rnpackage HomeWork4;nni
java中缓冲区Bufferedreader读取操作及其特有操作readline
n/*n * 为了提高效率提出了Bufferedreader,而且,和Filereader不同,除了直接读取和创建字符数组读取以外,n * 他还有一种非常重要的读取方式readerline方法(十分重要,学java必须会的操作)n * 步骤其实和普通读取的方式很相似,只是加入了缓冲区,先建立流对象FileReader,再把流对象传入缓冲区中BufferedReader。n */nimport ja...
java 集合 从类似如下的文本文件中读取出所有的姓名,并打印出重复的 * 姓名和重复的次数,并按重复次数排序:
package am;rnrnrn/*rn * 从类似如下的文本文件中读取出所有的姓名,并打印出重复的rn * 姓名和重复的次数,并按重复次数排序:rn */rnrnrnimport java.util.ArrayList;rnimport java.util.List;rnimport java.util.Map;rnimport java.util.TreeMap;rnrnrnpublic c
使用java读取文本文件的倒数第N行
本文主要介绍使用java语言读取文本文件的倒数第N行,并且打印其内容。
linux下使用read函数实现的按行读取readline
由于linux实验需要用到这个函数,但是又不太想用getline和fgets所以直接写了一个readline的函数,并没有对这个函数进行过效率测试。由于每次都只读取一个字符,然后判断是否是换行符和指针指向的数据空间是否为满,不像直接读取缓冲区,然后在判断的方式,可能我使用的方式速率会慢一些。以后有机会的时候进行下验证。n以下是代码,没有附加注释。#include n#include n#incl
用java内存映射实现读取文件行(readline)
下面代码使用两种方式读取日志文件,一种是流方式,一种是内存映射:rn rn rn rnimport java.io.BufferedReader;rnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.FileNotFoundException;rnimport java.io.IOException;rnim...
从一个文本文件中读取内容并打印,之后利用sort函数将内容排序后输出到新的文件中
/* Open a file, copy its content to vector container and print.   Then sort the contents using 'sort()' and output to another file(date and time included). */#include <iostream>#include <stri...
使用缓冲区复制文本文件及readLine()原理
package buffered.demo;nimport java.io.BufferedReader;nimport java.io.BufferedWriter;nimport java.io.FileReader;nimport java.io.FileWriter;nimport java.io.IOException;n/*n * 利用缓冲区复制文件n * 思路:
BufferedReader.readLine()读取文件第一行会出现bug,首行第一个字符会是一个空字符...
BufferedReader.readLine()读取第一行会出现bug,首行第一个字符会是一个空字符rnrnBufferedReader is =new BufferedReader(new InputStreamReader(new ileInputStream(file)));rnrnString str =is.readLine()rnrnchar c = str.charAt(0);rn...
BufferReader.readline()方法第一行第一个字节
今天使用BufferedReader br = new BufferedReader(new FileReader(file));读取上传sql文件并执行,每次都报SQL语法错误。后来调试发现br.readLine()读取出来的字符串长度比实际长度多1。第一个字符不可见,rnrnSystem.out.println(br.readLine().charAt(0) - 0)为 65279 。打印出来...
while read line只能读一行内容
今天写了个脚本,主要功能是要远程登录一批机器执行命令。自然而然想到的是把机器ip列表放到文件中,然后使用while read line,在循环里用ssh远程登录并执行命令。脚本大概如下:nnnn#!/bin/bashnnfile=$1...
node.js使用readline按行读取文件内容到Array中
具体代码实现如下:rnvar fs = require("fs");rnvar readLine = require("readline");rnrn/**rn * 按行读取文件内容rn *rn * @param fReadName 文件名路径rn * @param cb 回调函数rn *rn * @return 字符串数组rn */rnfunction readFileToArr(fReadName,
linux read 少读末尾一行的问题
写过一个脚本,把文件 a.txt 里的内容读出来逐行处理,相关的脚本是这样写:nnncat a.txt | while read -r linendon# 处理逻辑ndonenn看似没什么问题,但实际发现读入 a.txt 少读了最后一行。这是什么毛病呢?经过调试,发现文件末尾不加换行,read 就不能读进去。大概是因为 read 认为,没有换行符结束的行,是不完整的。那么是不是加上换行就可以了呢?...
BufferReader 的readling 方法,读取不到文件中的第一行
使用BufferedReader的readline方法读取文件的时候,明明文件中有数据,但是只有一行数据。  为什么读不出来呢?nn nn代码如下:nn nnnpublic class FileTest03 {n n public static void main(String[] args) throws Exception {n //创建一个文件n File file = new File...
Java IO流 使用RandomAccessFile快速读写文本文件最后一行
一个使用RandomAccessFile来**操作文本文件的最后一行**的工具类
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 产品经理培训班出来 web培训出来