① 將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