您的位置:首页 > 编程语言 > Java开发

Java读取CSV文件指定行的值

2010-01-27 22:35 525 查看
测试txt路径:C:/testlog.txt,内容如下:
23:25:37 VirtualDisk - couldn't load BBArchive.dll - 126
23:29:37 VirtualDisk - couldn't load BBArchive.dll - 126
22:29:12 VirtualDisk - couldn't load BBArchive.dll - 126
22:35:17 VirtualDisk - couldn't load BBArchive.dll - 126
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
lllllllllllllllllllllllllllllllllllllllll
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

测试代码:

/*
* $RCSfile: Test.java,v $
* $Revision: 1.1 $
* $Date: 2009-2-20 $
*
* Copyright (C) 2005 Bettem, Inc. All rights reserved.
*
* This software is the proprietary information of Bettem, Inc.
* Use is subject to license terms.
*/

package servlet;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

/**
* <p>
* Title: Test
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* @author 李晗
* @version 1.0
*/

public class Test {

/**
* @param args
*/

/**
* 读取txt内容到数组
*/
public static String[] getTxtContent(String path)
{
File f = null;
String[] a = null;

try {
a = new String[100000];

f=new File(path);

InputStreamReader read = new InputStreamReader(new FileInputStream(f), "GBK");

BufferedReader reader = new BufferedReader(read);

String line;
int i;

for (i = 0; i < 100000; i++)
{
if ((line = reader.readLine()) != null)
{
a[i] = line;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return a;
}

/**
* 读取指定一行内容
* @param path
* @param row
* @return
*/
public String listTxtByRow1(String path,Integer row)
{
String[] s = getTxtContent(path);
return "第"+row+"行:"+s[row-1];
}

public List<String> listTxtByRow2(String path,Integer start,Integer end)
{
List<String> list =new ArrayList<String>();
String[] s = getTxtContent(path);

for(int i = start;i <= end;i++)
{
list.add(s[i-1]);
}

return list;
}

public static void main(String[] args) {

Test t = new Test();
System.out.println(t.listTxtByRow1("C:/testlog.txt",6));//取出第6行数据
System.out.println("==================取出指定行数=====================");
List<String> list = t.listTxtByRow2("C:/testlog.txt", 2, 5);//取出2-5行数据
for(int i = 0;i<list.size();i++)
{
System.out.println(list.get(i));
}
} }

运行情况:

第6行:wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
==================取出指定行数=====================
23:29:37 VirtualDisk - couldn't load BBArchive.dll - 126
22:29:12 VirtualDisk - couldn't load BBArchive.dll - 126
22:35:17 VirtualDisk - couldn't load BBArchive.dll - 126
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: