❶ 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);
}
}