看楼主比较懂,
参阅RandomAccessFile类
先用seek(long pos)把指针指向文件最后
然后视你的数据用
writeBytes(String s) //有汉字什么的
writeChars(String s) //一般的字符串
writeUTF(String str) //有UTF-8的字符
写入数据
FileInputStream是按字节读取文件的
按行读取的话,用BufferedReader
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("sscsv"));
String str = "";
while (null != (str = brreadLine())) {
Systemoutprintln(str);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} finally {
if (br!= null) {
try {
brclose();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
用的相对路径,sscsv和类放在一个文件夹里了
import javaioBufferedReader;
import javaioFile;
import javaioFileReader;
import javautilArrayList;
public class Sort {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<String>();
File file = new File("datacsv"); //这里填你的csv文件的路径
BufferedReader fr = new BufferedReader(new FileReader(file));
String s = null;
while ((s=frreadLine())!=null){
listadd(s);
}
frclose();
list = sort(list);
for (String str : list){
Systemoutprintln(str);
}
}
public static ArrayList<String> sort(ArrayList<String> list){
String str1 = null;
String str2 = null;
int flag = 0;
int size = listsize();
for(int i=0; i<listsize()-1; i++){
for (int j=0; j<size-1; j++){
str1 = listget(j);
str2 = listget(j+1);
flag = getDept(str1)compareToIgnoreCase(getDept(str2));
if (flag>=0){
listset(j, str2);
listset(j+1, str1);
}
}
size -= 1;
}
return list;
}
public static String getDept(String str){
String[] array = strsplit(",");
return array[3];
}
}
你数据库的
字段长度
要是不能设置大点的话肯定要做check,超过存储长度就进行截取,然后存。要么就把varchar设置到500(此时不会自动转成text,效率依然很高),还不够
大你
就设成text吧,再就认为check截取,别期待mysql能自动帮你处理。
以上就是关于java *** 作csv文件全部的内容,包括:java *** 作csv文件、java如何用FileIputStream按行读取csv文件 求代码、写出一个Java程序,读取该CSV文件,并且按照部门字段分组,最后打印出来,打印结果如下:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)