從網(wǎng)上粘了一個(gè),稍微改改就能用
成都創(chuàng)新互聯(lián)專(zhuān)注于漳浦企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開(kāi)發(fā)。漳浦網(wǎng)站建設(shè)公司,為漳浦等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
第7行 就是你所說(shuō)的需求, 當(dāng)文件路徑不存在,創(chuàng)建路徑
private?void?savePic(InputStream?inputStream,?String?fileName)?{
OutputStream?os?=?null;????????try?{
String?path?=?"D:\\testFile\\";????????????//?2、保存到臨時(shí)文件????????????//?1K的數(shù)據(jù)緩沖
byte[]?bs?=?new?byte[1024];????????????//?讀取到的數(shù)據(jù)長(zhǎng)度
int?len;????????????//?輸出的文件流保存到本地文件
File?tempFile?=?new?File(path);????????????if?(!tempFile.exists())?{
tempFile.mkdirs();
}
os?=?new?FileOutputStream(tempFile.getPath()?+?File.separator?+?fileName);????????????//?開(kāi)始讀取
while?((len?=?inputStream.read(bs))?!=?-1)?{
os.write(bs,?0,?len);
}
}?catch?(IOException?e)?{
e.printStackTrace();
}?catch?(Exception?e)?{
e.printStackTrace();
}?finally?{????????????//?完畢,關(guān)閉所有鏈接
try?{
os.close();
inputStream.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
寫(xiě)代碼的順序最好和實(shí)際操作的邏輯一樣,先做什么后做什么,這樣能最大程度的保證邏輯不會(huì)出什么問(wèn)題。前提是你要熟悉業(yè)務(wù)邏輯。
還有開(kāi)發(fā)的時(shí)候不要局限于一個(gè)方法的實(shí)現(xiàn)代碼邏輯,先從整體上把方法都寫(xiě)出來(lái),比如這個(gè)方法要做什么,只管寫(xiě)一個(gè)方法就行,具體怎么做可以在框架都搭完了再寫(xiě),更好的就是全部用接口,接口全部寫(xiě)好了之后再寫(xiě)實(shí)現(xiàn)類(lèi),這樣更好。
還有一個(gè)方法里面的代碼最好不要太長(zhǎng),最好不要超過(guò)一個(gè)屏幕,不然看起來(lái)很累的,可以把一個(gè)方法分成好幾個(gè)方法來(lái)寫(xiě),那樣BUG也會(huì)減少很多,邏輯性強(qiáng)。還有就是最好不要循環(huán)嵌套,嵌套個(gè)兩三層后出問(wèn)題就麻煩了,如果一定要嵌套就分出去一個(gè)方法就好。
還有就是要多集成,能通用的方法就通用寫(xiě)掉,寫(xiě)成工具類(lèi),如果有框架了,多多熟悉原本就有的工具類(lèi),都自己寫(xiě)的話代碼多不說(shuō),還很容易出錯(cuò),要學(xué)會(huì)活用別人的代碼。
最后:多多交流,自己蒙頭寫(xiě)只能一事無(wú)成。
最最后:手打真累...
vipSet是一個(gè)包含了所有vip用戶信息的一個(gè)對(duì)象,alterVIP(implantation vipSet)這個(gè)方法首先從用戶處獲取一個(gè)id,然后遍歷vipSet,查找用戶輸入的id是否存在于vipSet當(dāng)中,
如果不存在,則輸出“沒(méi)有要修改的會(huì)員信息”
如果存在,會(huì)讓用戶輸入修改后的編號(hào),名字,積分和折扣,根據(jù)修改后的編號(hào),名字,積分和折扣,一個(gè)新的VIP對(duì)象newvip被建立,此newvip對(duì)象會(huì)被當(dāng)作存在于implantation vipSet中的alterVIP方法的參數(shù)傳入,實(shí)現(xiàn)最后的修改vip功能。
同理,對(duì)于deleteVIP,從用戶中取得要?jiǎng)h除用戶的編號(hào),然后此整數(shù)編號(hào)會(huì)被當(dāng)作存在于implantation vipSet中的deleteVIP方法的參數(shù)傳入,實(shí)現(xiàn)最后的修改vip功能。
注意207行alterVIP和224行的vipSet.alterVIP(id,newvip)并不是同一方法,同理231行deleteVIP和235行vipSet.deleteVIP(q)也不是同一個(gè)方法,因?yàn)閭魅氲膮?shù)的類(lèi)型并不同。在java中這叫做方法的重載。