[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 意見:
張貼留言