我是一個Java noob以及這個網站非常新,所以請忍受我在這裏。如果我在發佈這篇文章時做錯了事,請讓我知道,我事先爲我碰巧做的事或任何錯誤的語法道歉。我找不到是什麼導致例外
我需要在java中編寫一個自定義CSV解析器,它不會在引號內分隔逗號。我無法使用與CSV類相關的任何內容。 1,2,3,4 - > 1 2 3 4 一, 「B,C」,d - > AB,CD
無論我怎麼努力,我總是得到一個異常
import java.io.*;
import java.util.*;
public class csv
{
public static void main(String[] args)
{
File file = new File("csv.test");
BufferedReader buf = null;
try
{
buf = new BufferedReader(new FileReader(file));
String str;
while ((str = buf.readLine()) != null)
{
String[] values = null; // array for saving each split substr
int c1 = 0; // counter for current position in string
int c2 = 0; // counter for next space in array to save substr
int c3 = 0; // location of last comma or quotation for substring creation
int i = 0; // counter used later for printing
while (c1 <= str.length())
{
char x = str.charAt(c1);
String s = Character.toString(x);
if (c1 == str.length())
{
values[c2] = str.substring(c3, (c1 - 1));
}
else if (s == ",")
{
values[c2] = str.substring(c3, (c1 - 1));
c1++;
c2++;
c3++;
}
else if (s == "\"")
{
c1++;
c3 = c1;
while (s != "\"")
c1++;
values[c2] = str.substring(c3, (c1 - 1));
c1 = c1 + 2;
c2++;
c3 = c1;
}
else
{
c1++;
}
while (i < values.length)
System.out.println("\"" + values[i] + "\"");
}
}
}
catch (Exception e)
{
System.out.println("Error locating test file");
}
}
}
我曾嘗試過切斷所有邏輯並測試它是否與文件io相關。它讀取的很好,因此它與邏輯有關。我查看了一下,找不到任何問題。我甚至有一位朋友看過它,並說它看起來很好。拋出異常在哪裏?
可以請您包括完整的堆棧跟蹤?那將是一個好開始...... – mre
你可以分享相關的堆棧跟蹤嗎? –
將'e.printStackTrace();'添加到'catch'塊並告訴我們它說了什麼...... –