[問題] 讀取Txt轉成陣列之第一格第一個字為?

作者: soracho (空)   2015-06-12 16:22:12
不好意思,個人是第一次上來發問。
想請教各位,個人讀取出來的文件,在Data[0][0]的第一個字是?呢。
程式碼:
package readCSVtoArray;
import java.io.BufferedReader;
import java.io.FileInputStream;
//import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class readCSVtoArrayData
{
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
String fileUrl="d:/eclipse-java-luna-SR1a-win32-x86_64/eclipse/info.csv";
InputStreamReader isr = new InputStreamReader(new FileInputStream(fileUrl),
"utf-8");
BufferedReader br = new BufferedReader(isr);
String str = null;
String Data[][];
ArrayList tmpxList = new ArrayList(); //分成兩個Arraylist存 X跟Y
ArrayList tmpyList = new ArrayList();
ArrayList tmpList = new ArrayList();
//int num = 0;
while((str = br.readLine())!= null)
{
String tempArray[] = str.split("\\,");//分割空白鍵
tmpxList.add(tempArray[0]);
tmpyList.add(tempArray[1]);
}
//產生二維陣列, 依據暫存的size(txt檔的行數)
Data = new String [tmpxList.size()][2];
for(int i = 0; i< tmpxList.size(); i++)
{
//這段讓我知道不能直接用list條數
Data[i][0] = (String) tmpxList.get(i);
Data[i][1] = (String) tmpyList.get(i);
}
for(int i = 0; i < Data.length; i++)
{
for(int j = 0; j < Data[0].length; j++)
{
System.out.print(" "+Data[i][j] + " ");
}
System.out.println();
}
System.out.println();
System.out.print(" "+tmpList+ " ");
//System.out.println();
//System.out.print(" "+tempArray[0][1] + " ");
}
}
Java與Txt檔案在此:http://4fun.tw/asmp
作者: haha02 (來人!上夾棍!)   2015-06-12 18:26:00
應該是因為檔首有BOM的關係參考這個 http://stackoverflow.com/questions/4897876/
作者: Dnight (暗夜)   2015-06-13 16:10:00
你文字的編碼是不是UTF-8不是ANSI阿Txt用UTF-8存開頭會多一些編碼的資料給Java讀到
作者: soracho (空)   2015-06-14 10:37:00
1.編碼是UTF-8喔;2.謝謝大家給我建議。

Links booklink

Contact Us: admin [ a t ] ucptt.com