Java中读取txt最后一行的内容..
Filef1=newFile("Data\\ShortMessage.txt");FileInputStreamfos=newFileInputStream(f1);In...
File f1 = new File("Data\\ShortMessage.txt");
FileInputStream fos=new FileInputStream(f1);
InputStreamReader osw =new InputStreamReader(fos);
BufferedReader bw=new BufferedReader(osw);
while(bw.readLine()!=null)
{m=bw.readLine();System.out.println(m);}
结果 每次循环显示的是:
null
null
地震地区:广东省阳江市阳西县(有感) 发生时间:2013-09-18 17:26:05 精度:111.8 纬度:21.7 地震深度:12km
///////////////////////////////////////
按道理应该是没有前面两行null的:
地震地区:广东省阳江市阳西县(有感) 发生时间:2013-09-18 17:26:05 精度:111.8 纬度:21.7 地震深度:12km 展开
FileInputStream fos=new FileInputStream(f1);
InputStreamReader osw =new InputStreamReader(fos);
BufferedReader bw=new BufferedReader(osw);
while(bw.readLine()!=null)
{m=bw.readLine();System.out.println(m);}
结果 每次循环显示的是:
null
null
地震地区:广东省阳江市阳西县(有感) 发生时间:2013-09-18 17:26:05 精度:111.8 纬度:21.7 地震深度:12km
///////////////////////////////////////
按道理应该是没有前面两行null的:
地震地区:广东省阳江市阳西县(有感) 发生时间:2013-09-18 17:26:05 精度:111.8 纬度:21.7 地震深度:12km 展开
3个回答
展开全部
package testfile;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class TestFile {
ArrayList<String> ar=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
TestFile t=new TestFile();
try {
t.readFile("F://exe2.txt");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readFile(String st) throws Exception{
File file=new File(st);
FileReader fr=new FileReader(file);
BufferedReader bw=new BufferedReader(fr);
String str=null;
while((str=bw.readLine())!=null){
ar.add(str);
}
for(int i=0;i<ar.size();i++){
System.out.println(ar.get(i)+"\n\r");
}
}
}
读取最后一行只要取出 ar的最后一个值即可。。
注意:你写的问题在于你一次while循环 bw读了两次。。。小括号里一次,大括号里一次。。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class TestFile {
ArrayList<String> ar=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
TestFile t=new TestFile();
try {
t.readFile("F://exe2.txt");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readFile(String st) throws Exception{
File file=new File(st);
FileReader fr=new FileReader(file);
BufferedReader bw=new BufferedReader(fr);
String str=null;
while((str=bw.readLine())!=null){
ar.add(str);
}
for(int i=0;i<ar.size();i++){
System.out.println(ar.get(i)+"\n\r");
}
}
}
读取最后一行只要取出 ar的最后一个值即可。。
注意:你写的问题在于你一次while循环 bw读了两次。。。小括号里一次,大括号里一次。。
追问
你的 ar是什么?
追答
ar 就是ArrayList 集合。。存放 String 的。。
展开全部
能读出来你就该庆幸了呢
while(bw.readLine()!=null)
{
m=bw.readLine();
System.out.println(m);
}
你这么写,直接就白白跳过一行呢
while((m = bw.readLine()) != null){
System.out.println(m);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while((String m = bw.readLine())!=null)
{ System.out.println(m);}
{ System.out.println(m);}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询