① 将csv中信息存取到java中的map

首先要有个实体类(javabean)放一个用户的信息:
class User {
public String userId;
public String userName;
public String age;
public String sex;
public String gtmCreated;
public String gtmModify;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getGtmCreated() {
return gtmCreated;
}
public void setGtmCreated(String gtmCreated) {
this.gtmCreated = gtmCreated;
}
public String getGtmModify() {
return gtmModify;
}
public void setGtmModify(String gtmModify) {
this.gtmModify = gtmModify;
}

}
具体实现:
public static void readCsvFile() throws IOException {
Map<String, User> manHs = new HashMap<String, User>();
Map<String, User> womanHs = new HashMap<String, User>();
File csvFile = new File("F:"+File.separator+"testSource"+File.separator+"csv.csv");
FileReader fr = new FileReader(csvFile);
BufferedReader br = new BufferedReader(fr);
String lineStr = null ;
int indexman = 0;
int indexwoman = 0;
while((lineStr = br.readLine()) != null) {
User user = new User();
String[] arr= lineStr.split(",");
user.setUserId(arr[0]);
user.setUserName(arr[1]);
user.setAge(arr[2]);
user.setSex(arr[3]);
user.setGtmCreated(arr[4]);
user.setGtmModify(arr[5]);
if(arr[2].equals("男")) {
manHs.put("man"+indexman, user);
indexman++;
}else {
womanHs.put("woman"+indexwoman, user);
indexwoman++;
}
}
for(Entry<String, User> entry : manHs.entrySet()) {
out.println(entry.getKey() + "\t" + entry.getValue().getUserName());
}
for(Entry<String, User> entry : womanHs.entrySet()) {
out.println(entry.getKey() + "\t" + entry.getValue().getUserName());
}
}
在main方法中直接调用

② 如何使用eclipse编写java程序读取csv文件中

package ImportTestData;
import java.io.BufferedReader;
import java.io.FileReader;
public class Test {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("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();
}
}
}

③ java 怎么获取csv文件内容

前几天刚做了一个 对文本文件分析编码方式以便正确转码
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
detector.add(UnicodeDetector.getInstance());
detector.add(JChardetFacade.getInstance());
detector.add(ASCIIDetector.getInstance());
File f = new File(url);
Charset charset = detector.detectCodepage(f.toURI().toURL());
//判断是否是UTF-8编码的文件
if("UTF-8".equals(charset.toString())){
br = new BufferedReader(new InputStreamReader(new FileInputStream(url),"UTF-8"));
} else {
br = new BufferedReader(new InputStreamReader(new FileInputStream(url),"GBK"));
}
可以判断的编码有不少 楼主可以输出试试看
cpdetector_1.0.10和 chardet (jchardet-1.1)这个是依赖jar包

④ java读取CSV文件

可以通过流的形式读取到所有内容,之后在转换成元素的形式进行实现。举例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;

public class Test{
public static void main(String[] args) {
Hashtable<String, String[]> dict = new Hashtable<String, String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("test.csv"));
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");
String item2[] = new String[19];
System.array(item,1,item2,0,19);
dict.put(item[0],item2);
}
Enumeration e2 = dict.keys();
while (e2.hasMoreElements()) {
String key = (String) e2.nextElement();
System.out.println(key);
String[] dd = (String[])dict.get(key);
for (int i=0;i<dd.length;i++) {
System.out.print(dd[i]+"\t");
}
System.out.println();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}

⑤ java 读取csv文件里指定行列的值,比如读取第三行第二列的值。

import java.io.BufferedReader;
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

2WBS2

3PID3

4CP

5社供出

6原価実绩

7社供WC

8外注费

9直材费

10自家制品

11直経费

12その他

13注残

14注残

⑥ java怎么读取csv每列的数据

读csv跟读txt文件没区别,都是以流的方式读入,取每列数据要把整个文件都读进来,然后取每行的相应列加到List里。

⑦ 如何读取csv一行中的单个数据java

  • packagecom.han.csv.util;

  • importjava.io.BufferedReader;

  • importjava.io.FileInputStream;

  • importjava.io.InputStreamReader;

  • importjava.util.ArrayList;

  • publicclassCSVFileUtil{

  • //CSV文件编码

  • publicstaticfinalStringENCODE="UTF-8";

  • privateFileInputStreamfis=null;

  • privateInputStreamReaderisw=null;

  • privateBufferedReaderbr=null;

  • publicCSVFileUtil(Stringfilename)throwsException{

  • fis=newFileInputStream(filename);

  • isw=newInputStreamReader(fis,ENCODE);

  • br=newBufferedReader(isw);

  • }

  • //==========以下是公开方法=============================

  • /**

  • *从CSV文件流中读取一个CSV行。

  • *

  • *@throwsException

  • */

  • publicStringreadLine()throwsException{

  • StringBufferreadLine=newStringBuffer();

  • booleanbReadNext=true;

  • while(bReadNext){

  • //

  • if(readLine.length()>0){

  • readLine.append(" ");

  • }

  • //一行

  • StringstrReadLine=br.readLine();

  • //readLineisNull

  • if(strReadLine==null){

  • returnnull;

  • }

  • readLine.append(strReadLine);

  • //如果双引号是奇数的时候继续读取。考虑有换行的是情况。

  • if(countChar(readLine.toString(),'"',0)%2==1){

  • bReadNext=true;

  • }else{

  • bReadNext=false;

  • }

  • }

  • returnreadLine.toString();

  • }

  • /**

  • *把CSV文件的一行转换成字符串数组。指定数组长度,不够长度的部分设置为null。

  • */

  • publicstaticString[]fromCSVLine(Stringsource,intsize){

  • ArrayListtmpArray=fromCSVLinetoArray(source);

  • if(size<tmpArray.size()){

  • size=tmpArray.size();

  • }

  • String[]rtnArray=newString[size];

  • tmpArray.toArray(rtnArray);

  • returnrtnArray;

  • }

  • /**

  • *把CSV文件的一行转换成字符串数组。不指定数组长度。

  • */

  • (Stringsource){

  • if(source==null||source.length()==0){

  • returnnewArrayList();

  • }

  • intcurrentPosition=0;

  • intmaxPosition=source.length();

  • intnextComma=0;

  • ArrayListrtnArray=newArrayList();

  • while(currentPosition<maxPosition){

  • nextComma=nextComma(source,currentPosition);

  • rtnArray.add(nextToken(source,currentPosition,nextComma));

  • currentPosition=nextComma+1;

  • if(currentPosition==maxPosition){

  • rtnArray.add("");

  • }

  • }

  • returnrtnArray;

  • }

  • /**

  • *把字符串类型的数组转换成一个CSV行。(输出CSV文件的时候用)

  • */

  • publicstaticStringtoCSVLine(String[]strArray){

  • if(strArray==null){

  • return"";

  • }

  • StringBuffercvsLine=newStringBuffer();

  • for(intidx=0;idx<strArray.length;idx++){

  • Stringitem=addQuote(strArray[idx]);

  • cvsLine.append(item);

  • if(strArray.length-1!=idx){

  • cvsLine.append(',');

  • }

  • }

  • returncvsLine.toString();

  • }

  • /**

  • *字符串类型的List转换成一个CSV行。(输出CSV文件的时候用)

  • */

  • publicstaticStringtoCSVLine(ArrayListstrArrList){

  • if(strArrList==null){

  • return"";

  • }

  • String[]strArray=newString[strArrList.size()];

  • for(intidx=0;idx<strArrList.size();idx++){

  • strArray[idx]=(String)strArrList.get(idx);

  • }

  • returntoCSVLine(strArray);

  • }

  • //==========以下是内部使用的方法=============================

  • /**

  • *计算指定文字的个数。

  • *

  • *@paramstr文字列

  • *@paramc文字

  • *@paramstart开始位置

  • *@return个数

  • */

  • privateintcountChar(Stringstr,charc,intstart){

  • inti=0;

  • intindex=str.indexOf(c,start);

  • returnindex==-1?i:countChar(str,c,index+1)+1;

  • }

  • /**

  • *查询下一个逗号的位置。

  • *

  • *@paramsource文字列

  • *@paramst检索开始位置

  • *@return下一个逗号的位置。

  • */

  • privatestaticintnextComma(Stringsource,intst){

  • intmaxPosition=source.length();

  • booleaninquote=false;

  • while(st<maxPosition){

  • charch=source.charAt(st);

  • if(!inquote&&ch==','){

  • break;

  • }elseif('"'==ch){

  • inquote=!inquote;

  • }

  • st++;

  • }

  • returnst;

  • }

  • /**

  • *取得下一个字符串

  • */

  • privatestaticStringnextToken(Stringsource,intst,intnextComma){

  • StringBufferstrb=newStringBuffer();

  • intnext=st;

  • while(next<nextComma){

  • charch=source.charAt(next++);

  • if(ch=='"'){

  • if((st+1<next&&next<nextComma)&&(source.charAt(next)=='"')){

  • strb.append(ch);

  • next++;

  • }

  • }else{

  • strb.append(ch);

  • }

  • }

  • returnstrb.toString();

  • }

  • /**

  • *在字符串的外侧加双引号。如果该字符串的内部有双引号的话,把"转换成""。

  • *

  • *@paramitem字符串

  • *@return处理过的字符串

  • */

  • privatestaticStringaddQuote(Stringitem){

  • if(item==null||item.length()==0){

  • return"""";

  • }

  • StringBuffersb=newStringBuffer();

  • sb.append('"');

  • for(intidx=0;idx<item.length();idx++){

  • charch=item.charAt(idx);

  • if('"'==ch){

  • sb.append("""");

  • }else{

  • sb.append(ch);

  • }

  • }

  • sb.append('"');

  • returnsb.toString();

  • }

  • }

⑧ java读取csv文件

importjava.io.BufferedReader;
importjava.io.FileReader;
importjava.util.*;

publicclassTest{
publicstaticvoidmain(String[]args){
Hashtable<String,String[]>dict=newHashtable<String,String[]>();
try{
BufferedReaderreader=newBufferedReader(newFileReader("test.csv"));
Stringline=null;
while((line=reader.readLine())!=null){
Stringitem[]=line.split(",");
Stringitem2[]=newString[19];
System.array(item,1,item2,0,19);
dict.put(item[0],item2);
}
Enumeratione2=dict.keys();
while(e2.hasMoreElements()){
Stringkey=(String)e2.nextElement();
System.out.println(key);
String[]dd=(String[])dict.get(key);
for(inti=0;i<dd.length;i++){
System.out.print(dd[i]+" ");
}
System.out.println();
}
}
catch(Exceptione){
e.printStackTrace();
}
}
}

⑨ 如何读取csv文件到excel java

搜索一下poi