public void test(int row,int col){
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\\a.csv"));//换成你的文件名
reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
String last = item[item.length-1];//这就是你要的数据了
//int value = Integer.parseInt(last);//如果是数值,可以转化为数值
System.out.println(last);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
TestRead tr=new TestRead();
tr.test(2, 3);
}
1 电机 1
2 WBS 2
3 PID 3
4 CP
5 社供出
6 原価実绩
7 社供WC
8 外注费
9 直材费
10 自家制品
11 直経费
12 その他
13 注残
14 注残
ããimport java.io.IOException;
ããimport java.nio.charset.Charset;
ããimport java.util.ArrayList;
ããimport com.csvreader.CsvReader;
ããimport com.csvreader.CsvWriter;
ãã/**
ãã* 读åCSVæ件
ãã* æè°"CSV",æ¯Comma Separated Valueï¼éå·åéå¼ï¼çè±æ缩åï¼é常é½æ¯çº¯ææ¬æ件ã
ãã* å¯ä»¥çææ°æ®åºç¨åºä¸çµåè¡¨æ ¼ä¹é´ä¸ç§ä¸é´éä¿¡æ件ï¼æ°æ®åºå¯ä»¥å¯¼åºãcsvæ ¼å¼ï¼excelä¹å¯ä»¥å¯¼å ¥å¹¶æå¼ãcsvæ件ï¼ä¾åå¦ä¸
ãã* sj_mino1001.jpg,715282,4FB55FE8,
ãã* sj_mino1002.jpg,471289,93203C5C,
ãã* sj_mino1003.jpg,451929,C4E80467,
ãã*
ãã*/
ããpublic class CSVDeal{
ããpublic static void mainï¼String[] argsï¼ {
ããtry {
ããString[] stringList;
ããString csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
ããString sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
ããCsvReader reader = new CsvReaderï¼csvFilePathï¼ï¼ //é»è®¤æ¯éå·åé符ï¼UTF-8ç¼ç
ããCsvWriter writer = new CsvWriterï¼sourceFileStringï¼ï¼
ãã/*
ãã* readRecordï¼ï¼å¤ææ¯å¦è¿æè®°å½ï¼getValuesï¼ï¼è¯»åå½åè®°å½ï¼ç¶åæéä¸ç§»
ãã*/
ããreader.readRecordï¼ï¼ï¼
ããwriter.writeRecordï¼reader.getValuesï¼ï¼ï¼ï¼ //读å表头
ãã/*
ãã* éè¡è¯»åï¼ä»¥å æ件太大
ãã* å¤ç表头åé¢çæ°æ®ï¼è¿éæ¯å¨ç¬¬12åæ°æ®ç»ä¸å åç¼"V"
ãã*/
ããwhileï¼reader.readRecordï¼ï¼ï¼{
ããstringList = reader.getValuesï¼ï¼ï¼
ããstringList[11] = 'V' + stringList[11];
ããwriter.writeRecordï¼stringListï¼ï¼
ãã}
ããreader.closeï¼ï¼ï¼
ããwriter.closeï¼ï¼ï¼
ãã}catchï¼Exception exï¼{
ããSystem.out.printlnï¼exï¼ï¼
ãã}
ãã}
ãã}
import java.io.FileReader;
public class Test {
public void test(int row,int col){
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\\a.csv"));//换成你的文件名
// reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
int index=0;
while((line=reader.readLine())!=null){
String item[] = line.split(" ");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
if(index==row-1){
if(item.length>=col-1){
String last = item[col-1];//这就是你要的数据了
System.out.println(last);
}
}
//int value = Integer.parseInt(last);//如果是数值,可以转化为数值
index++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Test test = new Test();
test.test(3, 2);
}
}
你的数据格式有问题,空格的个数不确定,没办法每行用空格分隔。以下是我调整后的数据格式每行的数据以一个空格分隔,test方法传入的参数一次是,行,列:
1 电机 1
2 WBS 2
3 PID 3
4 CP
5 社供出
6 原価実绩
7 社供WC
8 外注费
9 直材费
10 自家制品
11 直経费
12 その他
13 注残
14 注残
追问虽然程序可运行,但是查询的结果不对,自己随意换了坐标位置,查询就报异常或者结果出错了,汗……
追答首先把你CSV文件的内容改成上面的,每行的分隔符为一个空格。
把15行的col-1改成col,如果列数超过范围则不输出。
输入的参数依次为,行数,列数。比如输入test(3,2),显示第三行第二列,PID