[Java]read file(讀取檔案) & ArrayList(動態陣列) & String型態的轉換
為什麼標題會這樣下呢,因為最近再寫程式的時候常會做到這些流程
我的目的是要分析很多筆的資料
1.從txt檔讀取資料進來
2.因為不知道資料量的大小多少,會用一個動態的陣列儲存
3.動態陣列存的資料是String型態,必須轉為int,double,float,long型態的資料對我來說才有用
因為程式設計師經常需要用到數據來分析一些問題
綜合以上三點,才會需要使用到這些工具
待會兒會一一介紹
我使用的語言是Java
操作環境是安裝eclipse,很推這個編輯程式工具
強大又人性化,除了基本的關鍵字會標顏色之外,
如果Complie有錯誤,還會跟你說需要加上甚麼東西,會給你提示!!
所以可以省掉很多的麻煩,
台灣大學的eclispe教學連結
Get the Start ADK連結 -->下載這個除了可以在eclipse環境下寫java,也可以開發android程式
<demo範例>
我讀取的檔案名稱"test.txt"
檔案內容如下
1.1234 2.2345 3.3456 4.4567 5.5678 6.6789 7.7890 8.8901 9.9012
我的程式碼如下
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class blog { //"blog"是我們宣告的檔名 public static void main(String[] args) throws IOException { FileReader fr = new FileReader("test.txt"); BufferedReader br = new BufferedReader(fr); String line,tempstring; String[] tempArray= new String[3]; ArrayList myList = new ArrayList(); int i=0; while((line = br.readLine())!=null) { //br.readLine()是指讀取txt檔的每一行資料,把讀到的資料存到line //再將line丟給tempstring去儲存 tempstring = line; //因為我這個test檔的資料格式是-->一行有3個字串,用兩個空白鍵隔開, //tempstring.split("\\s") 會依照空白鍵來切割,剛好切三個,所以這邊我的tempArray的大小才會宣告3 tempArray = tempstring.split("\\s"); //這邊就是按照順序,一行一行的儲存到動態陣列裡面 for(i=0;i< tempArray.length;i++) { myList.add(tempArray[i]); } } //到上半步為止,已經成功完成前兩步驟了 //這邊的除3,和矩陣的需告大小,其實就是上面講的 "tempArray.length"這個值來做決定的 //y小於3,也是從"tempArray.length"的概念來的 int k = myList.size()/3; int count=0; double[][] trans_array = new double[k][3]; for(int x=0;x<myList.size()/3;x++) { for(int y=0;y<3;y++) { trans_array[x][y]=Double.parseDouble((String) myList.get(count)); count++; //一個index來決定myList讀取值的位置 } } //這邊我用的發法是二維陣列來存取的,也可以用一維陣列存取 //到這邊為止,我們已經成功的將文字檔的資料存放到一個Double二維陣列上了 } }
所以我們就可以隨心所欲使用資料
轉換後的陣列存的值對應的為:
trans_array[0][0]=1.1234 trans_array[0][1]=2.2345 trans_array[0][2]=3.3456 trans_array[1][0]=4.4567 trans_array[1][1]=5.5678 trans_array[1][2]=6.6789 trans_array[2][0]=7.7890 trans_array[2][1]=8.8901 trans_array[2][2]=9.9012
<延伸閱讀>
因為1,2,3點的程式說明其他大大們已經有很好的文章了
就不再多寫贅述,下面附上我參考資料的連結
(1)
讀取與寫入
Java學習筆記(二)
(2)
ArrayList的用法,與Array的差別
Java入門指南-arraylist
ArrayList(Andriod Develop)
(3)
String與基本資料型態的轉換
0 意見:
張貼留言