[英]CSV file generated from Java adds unwanted question mark (?)
我正在從Java代碼創建CSV文件。 (我還生成了相同的HTML
和txt
文件。問題仍然相同。)
代碼如下。
private String writeToFile(StringBuffer csvData, long randomDigits, String type) {
String fileName = "";
String filePath = "";
if ("CSV".equals(type)) {
filePath = WebConstants.PATH + randomDigits + "CSV.csv";
fileName = randomDigits + "CSV.csv";
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
bw.write(csvData.toString());
bw.flush();
bw.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return fileName;
}
現在,生成文件后,所有數據看起來都正確。 但是在文件末尾,有一個問號(?),它是不需要的。 我調試了代碼,當bw.write(csvData.toString())
時, bw.write(csvData.toString())
的值csvData
不包含問號。
這就是我創建StringBuffer csvData
private StringBuffer saveAsCVSFile(Vector<XYZVO> list) {
StringBuffer csvData = new StringBuffer();
XYZVO VO = null;
if (list != null) {
for (int i = 0; i < list.size(); i++) {
VO = list.get(i);
csvData.append(VO.getABC()+",");
csvData.append(VO.getDEF()+",");
csvData.append(VO.getGHI()+",");
csvData.append(VO.getJKL()+",");
csvData.append(VO.getMNO()+"\n");
}
}
return csvData;
}
在這里, XYZVO
包含所有String
或int
變量。
我還添加了一個代碼來讀取生成的文件,如下所示。
private void checkFileData(String filePath) {
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line = null;
while((line = br.readLine()) != null) {
System.out.println("Line X: "+line);
}
} catch(FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
當我在控制台中檢查此已讀取代碼的輸出時,它根本沒有在最后顯示問號。
如果有人有任何想法,請告知。
當您關閉編寫器時,將首先刷新它。 因此,關閉前無需沖洗。 嘗試刪除它。
我使用FileWriter實現了相同的目的:
try
{
FileWriter writer=new FileWriter(csv);
writer.append("Mobile Number");
writer.append(',');
writer.append("Message");
writer.append(',');
writer.append("Service");
writer.append(',');
writer.append("Time");
writer.append('\n');
writer.append(mobileNumber);
writer.append(',');
writer.append(message);
writer.append(',');
writer.append(service);
writer.append(',');
writer.append(time);
writer.append('\n');
writer.flush();
writer.close();
}
catch(Exception e){
//catch Exception here
}
我使用了您的代碼,但是它在我的工作中.......
public static void main(String[] args) throws URISyntaxException, UnknownHostException, ClassNotFoundException{
Test a = new Test();
Vector<MyObject> testObj = new Vector<MyObject>();
testObj.add(new MyObject());
testObj.add(new MyObject());
testObj.add(new MyObject());
a.checkFileData(a.writeToFile(a.saveAsCVSFile(testObj),123456789 , "CSV"));
}
private StringBuffer saveAsCVSFile(Vector<MyObject> list) {
StringBuffer csvData = new StringBuffer();
MyObject VO = null;
if (list != null) {
for (int i = 0; i < list.size(); i++) {
VO = list.get(i);
csvData.append(VO.getABC()+",");
csvData.append(VO.getDEF()+",");
csvData.append(VO.getGHI()+",");
csvData.append(VO.getJKL()+",");
csvData.append(VO.getMNO()+"\n");
}
}
return csvData;
}
private void checkFileData(String filePath) {
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line = null;
while((line = br.readLine()) != null) {
System.out.println("Line X: "+line);
}
br.close();
} catch(FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private String writeToFile(StringBuffer csvData, long randomDigits, String type) {
String fileName = "";
String filePath = "";
if ("CSV".equals(type)) {
filePath = randomDigits + "CSV.csv";
fileName = randomDigits + "CSV.csv";
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
bw.write(csvData.toString());
bw.flush();
bw.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return fileName;
}
class MyObject{
static int count =1;
public String getABC() {
return "ABC"+(++count);
}
public String getMNO() {
return "MNO"+count;
}
public String getJKL() {
return "JKL"+count;
}
public String getGHI() {
return "GHI"+count;
}
public String getDEF() {
return "DEF"+count;
}
}
Line X: ABC2,DEF2,GHI2,JKL2,MNO2
Line X: ABC3,DEF3,GHI3,JKL3,MNO3
Line X: ABC4,DEF4,GHI4,JKL4,MNO4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.