❶ java 讀取csv發送 foxmail
CSV(CommaSeparatedValue),Foxmail和Outlook導出段晌的地址本都可以是csv文件。CsvJdbc提供了Java訪問csv文件的的JDBC驅動,它念褲其實是把一個csv文件當做一個資料庫表來操作,提供簡單的查詢。在發送foxmail的時候比較方便而已仔燃簡。
❷ 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文件
package xufei;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 文件規則
* Microsoft的格式是最簡單的。以逗號分隔的值要麼是「純粹的」(僅僅包含在括弧之前),
* 要麼是在雙引號之間(這時數據中的雙引號以一對雙引號表示)。
* Ten Thousand,10000, 2710 ,,"10,000","It's ""10 Grand"", baby",10K
* 這一行包含七個欄位(fields):
* Ten Thousand
* 10000
* 2710
* 空欄位
* 10,000
* It's "10 Grand", baby
* 10K
* 每條記錄佔一行
* 以逗號為殲橋畢分隔符
* 逗號前後的空格會被忽略
* 欄位中包含有逗號,該欄位必須用雙引號括起來。如果是全形的沒有問題。
* 欄位中包含有換行符,該欄位必須用雙引號括起來
* 欄位前後包含有空格,該欄位必須用雙引號括起來
* 欄位中的雙引號用兩個雙引號表示
* 欄位中如果有雙引號氏芹,該欄位必須用雙引號括起來
* 第一條記錄,可以是欄位名
*/
/**
*
タイトル: xufei.CSVAnalysis.java
*
說明:
*
著作権: Copyright (c) 2006
*
會社名: technodia
* @author 徐飛
* @version 1.0
* createDate Aug 11, 2008
* 修正履歴
* 修正日 修正者修正理由
*/
public class CSVAnalysis {
private InputStreamReader fr = null;
private BufferedReader br = null;
public CSVAnalysis(String f) throws IOException {
fr = new InputStreamReader(new FileInputStream(f));
}
/**
* 解析csv文件 到一個list中
* 每個單元個為一個String類型記錄,每一行為一個list。
* 再將所有的行放到一個總list中
* @return
* @throws IOException
*/
public List> readCSVFile() throws IOException {
br = new BufferedReader(fr);
String rec = null;//一行
String str;//一個單元格
List> listFile = new ArrayList>();
try {
//讀取一行
while ((rec = br.readLine()) != null) {
Pattern pCells = Pattern
.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");
Matcher mCells = pCells.matcher(rec);
List cells = new ArrayList();//每行記錄一個list
//讀取每個單元格
while (mCells.find()) {
str = mCells.group();
str = str.replaceAll(
"(?sm)\"消猛?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");
str = str.replaceAll("(?sm)(\"(\"))", "$2");
cells.add(str);
}
listFile.add(cells);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fr != null) {
fr.close();
}
if (br != null) {
br.close();
}
}
return listFile;
}
public static void main(String[] args) throws Throwable {
CSVAnalysis parser = new CSVAnalysis("c:/test2.csv");
parser.readCSVFile();
}
}
❹ 如何用java解析CSV文件
思想:先獲取csv文件的路徑,通過BufferedReader類去讀該路徑中的文件,使用readLine方法進行逐行讀取。
注意:使用readLine方法後會自動轉到下一行。因此在判斷是否為空後得先將讀取到的內容賦值給一變數,在循環中使用該變數即可。
publicstaticvoidmain(String[]args)
{
Filecsv=newFile("C:\Users\chenxumin\Desktop\Result.csv");//CSV文件路徑
BufferedReaderbr=null;
try
{
br=newBufferedReader(newFileReader(csv));
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
Stringline="";
StringeveryLine="";
try{
List<String>allString=newArrayList<>();
while((line=br.readLine())!=null)//讀取到的內容給line變數
{
everyLine=line;
System.out.println(everyLine);
allString.add(everyLine);
}
System.out.println("csv表格中所有行數:"+allString.size());
}catch(IOExceptione)
{
e.printStackTrace();
}
}
❺ java讀取csv寫入資料庫
使用opencsv讀到、、、、、使用jdbc存儲資料庫
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
❻ 如何讀取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文件
可以通過流的形式讀取到所有內容,之後在轉換成元素的形式進行實現。舉例:
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文件的同時也寫入數據
首先,答案是肯定的。如果滑野隱是指寫入資料庫,則
看復雜度,如果簡單的,按TEXT讀、拆分一下就可以。
如果復雜,可以當EXCEL,信廳使用POI讀進去。
讀取足夠的信息,就使用JDBC、等,寫入數脊游據庫
如果是寫csv文件本身,那使用RandomAccess,讀寫指定的位置
❾ 用JAVA讀取多個CSV文件
這是我寫的個類 你參考下 其實那個引號是不用管的
public class CsvUtil1 {
private String filename = null;
private BufferedReader bufferedreader = null;
private List list = new ArrayList();
public CsvUtil1() {
}
public CsvUtil1(String filename) throws IOException {
this.filename = filename;
bufferedreader = new BufferedReader(new FileReader(filename));
String stemp;
while ((stemp = bufferedreader.readLine()) != null) {
list.add(stemp);
}
}
public List getList() throws IOException {
return list;
}
public int getRowNum() {
return list.size();
}
public int getColNum() {
if (!list.toString().equals("[]")) {
if (list.get(0).toString().contains(",")) {
return list.get(0).toString().split(",").length;
} else if (list.get(0).toString().trim().length() != 0) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
public String getRow(int index) {
if (this.list.size() != 0)
return (String) list.get(index);
else
return null;
}
public String getCol(int index) {
if (this.getColNum() == 0) {
return null;
}
StringBuffer scol = new StringBuffer();
String temp = null;
int colnum = this.getColNum();
if (colnum > 1) {
for (Iterator it = list.iterator(); it.hasNext();) {
temp = it.next().toString();
scol = scol.append(temp.split(",")[index] + ",");
}
} else {
for (Iterator it = list.iterator(); it.hasNext();) {
temp = it.next().toString();
scol = scol.append(temp + ",");
}
}
String str = new String(scol.toString());
str = str.substring(0, str.length() - 1);
return str;
}
public String getString(int row, int col) {
String temp = null;
int colnum = this.getColNum();
if (colnum > 1) {
temp = list.get(row).toString().split(",")[col];
} else if (colnum == 1) {
temp = list.get(row).toString();
} else {
temp = null;
}
return temp;
}
public void CsvClose() throws IOException {
this.bufferedreader.close();
}
public void test() throws IOException {
CsvUtil1 cu = new CsvUtil1("D:/學習/00dw.csv");
List tt = cu.getList();
for (Iterator itt = tt.iterator(); itt.hasNext();) {
System.out.println(itt.next().toString()+"||");
}
// System.out.println(cu.getRowNum());
// System.out.println(cu.getColNum());
// System.out.println(cu.getRow(0));
// System.out.println(cu.getCol(0));
// System.out.println(cu.getString(0, 0));
cu.CsvClose();
}
public void createCsvTest1(HttpServletResponse Response) throws IOException {
CsvUtil1 cu = new CsvUtil1("D:/學習/00dw.csv");
List tt = cu.getList();
String data = "";
SimpleDateFormat dataFormat = new SimpleDateFormat("yyyyMMddHHmm");
Date today = new Date();
String dateToday = dataFormat.format(today);
File file=new File("D:/學習/001dw.csv");
if(!file.exists())
file.createNewFile();
// else
// file.delete() ;
String str[] ;
StringBuilder sb = new StringBuilder("");
BufferedWriter output=new BufferedWriter(new FileWriter(file,true));
for (Iterator itt = tt.iterator(); itt.hasNext();) {
String fileStr = itt.next().toString() ;
str = fileStr.split(",");
for(int i=0;i<=str.length-1;i++){ //拆分成數組 用於插入資料庫中
System.out.print("str["+i+"]="+str[i]+" ");
}
System.out.println("");
sb.append(fileStr+"\r\n") ;
}
//System.out.println(sb.toString());
output.write(sb.toString());
output.flush() ;
output.close();
cu.CsvClose();
}
public static void main(String[] args) throws IOException {
CsvUtil1 test = new CsvUtil1();
//test.test();
HttpServletResponse response = null ;
test.createCsvTest1(response);
}
}
❿ 求做一個Java程序,能讀入一個csv文件,並且能把csv文件裡面的內容倒序讀取出來,代碼求注釋要不看不懂,
回答完閉沖耐畢,採納即可。
importjava.io.File;
importjava.util.Scanner;
publicclassYuGiOh
{
privatestaticfinalStringLINE=判彎System.getProperty("line.separator");
privatestaticfinalStringFILE="Book1.csv";
privatestaticStringreadFile(Stringfile)
{
Stringresult="";
Scannerscanner=null;
StringBuilderbuilder=newStringBuilder();
try
{
scanner=newScanner(newFile轎春(file));
while(scanner.hasNextLine())
{
builder.delete(0,builder.capacity()-1);
Stringline=scanner.nextLine();
result=LINE+builder.append(line).reverse().toString()+result;
}
}
catch(Exceptionignore)
{}
finally
{
if(null!=scanner)
{
scanner.close();
}
}
returnresult;
}
publicstaticvoidmain(String[]arg)
{
Stringresult=readFile(FILE);
System.out.println(result);
}
}