1竹握、表格讀寫
表格格式:
目前此方法支持“.csv”文件画株。其余文件格式應(yīng)該是不支持的。不過幸好啦辐,學(xué)姐們給的數(shù)據(jù)文件格式也是csv文件谓传。
表格讀取相關(guān)代碼語法:
涉及的數(shù)據(jù)類型(類):
Table table; //表格類
TableRow row; //表格行類
讀取表格文件:
table=loadTable("******.csv","header"); //第一參:文件路徑
//第二參:省略為無表頭,header為有表頭
獲取一些表格信息:
int countNum=table.getRowCount(); //總行數(shù)芹关。列數(shù)是getColumnCount
讀取指定行:
row=table.getRow(INT); //要第幾行就寫幾良拼。表頭不算行數(shù)。
//行數(shù)從第0行開始算起
//如果需要獲得表頭內(nèi)容充边,讀取文件的時候不能用header讀進(jìn)來
獲得指定單元格內(nèi)容:
先讀取指定行,再讀取該行的指定列:
row=table.getRow(INT);
Object xxx=row.getObject(INT/STRING); //比如:
int x=row.getInt(0);
float y=row.getFloat(1);
String name=row.getString("Name");
//在提供的數(shù)據(jù)類型里讀取常侦。參數(shù)是int或者字符串String類型
//int就是列索引浇冰,從第0列算起
//String要求必須是用header讀進(jìn)來的有表頭的表格
//String內(nèi)容即為該列的列名。重復(fù)列名估計只取第一個
表格新建聋亡、寫入肘习、保存相關(guān)代碼語法:
表格保存:
saveTable(table,"*****.csv"); //第一參:表格
//第二參:保存路徑漂佩。已存在文件則會覆蓋內(nèi)容
表格修改:
步驟大致:讀表格——設(shè)置單元格的值——保存覆蓋/另存
//讀表格
//讀某行
row.setObject(INT/STRING,Object); //設(shè)置值
//第一參:列索引/列名(有表頭)
//第二參:要設(shè)置的數(shù)據(jù)類型的變量
//比如:
row.setFloat("Start",13.66f);
saveTable(table,"*****.csv"); //覆蓋就和原路徑一樣罪塔,另存就寫個新的路徑
新建表格:
步驟大致:新建表格對象——設(shè)置列——增加行——設(shè)置單元格的值——保存
Table targetTable;
targetTable=new Table();
targetTable.addColumn("Start",Table.FLOAT);
targetTable.addColumn("R",Table.FLOAT);
targetTable.addColumn("G",Table.FLOAT);
targetTable.addColumn("B",Table.FLOAT);
targetTable.addColumn("A",Table.FLOAT);
//給了列名和數(shù)據(jù)類型。具體參數(shù)是否可省看文檔
TableRow targetRow=targetTable.addRow();
//新增一行瘩缆〉柩粒可以一直增着绊,然后重新獲取目標(biāo)行在設(shè)置單元格內(nèi)容
targetRow.setFloat("Start",start);
targetRow.setFloat("R",rawEndRow.getFloat("R"));
targetRow.setFloat("G",rawEndRow.getFloat("G"));
targetRow.setFloat("B",rawEndRow.getFloat("B"));
targetRow.setFloat("A",rawEndRow.getFloat("A"));
//設(shè)置值
saveTable(targetTable,"***********.csv");
//保存
2归露、文本讀取
TXT文本目前只用到讀取斤儿,格式要求:
TXT文本文檔,含中文的話雇毫,則要求是U8編碼,否則processing讀取到的是亂碼中文枚粘。
U8編碼可以在TXT文本進(jìn)行另存為時修改。
代碼語法:
按行逐行讀取的一整套:
BufferedReader reader; //讀取器
reader=createReader("*******.txt"); //參數(shù)是:文本文檔路徑的String
try{
String line="";
line=reader.readLine(); //line即讀取的行
while(line!=null){ //不為空就繼續(xù)讀
/****
操作
***/
line=reader.readLine(); //讀下一行
}
reader.close();
}
catch(IOException e){
println(e);
}
暫不清楚文本中有空行時會發(fā)生什么馍迄∨嗜Γ可能會停下。
3赘来、圖片讀存
格式:
應(yīng)該是各種常見的圖片格式都可以的凯傲。
代碼語法:
讀圖片像素RGB:
PImage img;
img=loadImage("******.png","png"); //第一個參數(shù)路徑,第二個參數(shù)可以省
img.loadPixels(); //文檔要求寫幌缝,貌似省略也沒問題诫欠。安全起見還是寫了
color pix=img.pixels[j*128+i]; //一維數(shù)組,應(yīng)該是橫向排列的
int b=pix&0xFF;
int g=(pix>>8)&0xFF;
int r=(pix>>16)&0xFF; //運(yùn)用了位運(yùn)算
color類型實(shí)質(zhì)是一個int荒叼。16進(jìn)制下正好是常見的顏色編碼,比如C392B4這樣子贴硫。位運(yùn)算后與16進(jìn)制下的255(就是FF,二進(jìn)制8位全1)進(jìn)行與運(yùn)算间护,截得最低的8位。按順序汁尺,得到的結(jié)果由高到低分別是R多律,G,B辽装。
存畫布:
將當(dāng)前畫布內(nèi)容(當(dāng)前幀)存成圖片。
save("********.png"); //其他常見格式j(luò)pg拾积、tif也可以
存序列幀:
將當(dāng)前幀存成固定命名格式的圖片丰涉。
saveFrame("***-######.png"); //具體命名規(guī)則文檔里有
//井號會被替換成幀數(shù)(frameCount),高位補(bǔ)0
一般用法是將它寫在draw()里肛度,保存成序列幀投慈,整理到一個文件夾里。
然后用processing的“工具——Movie Maker”伪煤,選擇這個文件夾,設(shè)置幀數(shù),導(dǎo)出成視頻文件蟀给。
可以用一個index去除以間隔數(shù)取余,實(shí)現(xiàn)抽幀保存跋理。
直接保存圖片文件:
修改圖片文件的像素值之后,直接保存圖片變量為文件肚邢。文檔里肯定有相關(guān)方法,但是我暫時沒用到骡湖。所以不忙寫了。用到再補(bǔ)谆焊。
注意事項(xiàng):
保存圖片時要等上一會兒浦夷,保存需要一定時間。建議加個println去表示保存完畢劈狐。保存中途中斷的話,圖片會只存了一半莲兢,或者圖片文件受損打不開辫继。