java將數(shù)據(jù)寫入到txt文件中(txt有固定的格式)
java將數(shù)據(jù)寫入到txt文件中,這個應(yīng)該對于學過java I/O的人來說是很簡單的事情了,但是如果要將數(shù)據(jù)以固定的格式寫入到txt文件中,就需要一定的技巧了。
這里舉個簡單的例子,以供參考:
比如我要將數(shù)據(jù)寫成下面的樣子:
1 | 2 | 3 | 4
5 | 6 | 8 | 9
也許看起來很簡單的,因為每個數(shù)據(jù)所代表的長度是不一樣的,也有可能編碼不一樣,所有在你看來很簡單的事情就不應(yīng)那么容易實現(xiàn)了。必須要每一個豎線和他下面的豎線是對其的。
這里就不再將寫數(shù)據(jù)的過程提出來了,重點是讓每一列的數(shù)據(jù)都能有一個同樣的寬度:
[html] view plaincopy
- public String formatStr(String str, int length) {
- str = " "+str;
- int strLen = str.getBytes().length;
- if (strLen < length) {
- int temp = length - strLen;
- for (int i = 0; i < temp; i++) {
- str += " ";
- }
- }
- return str ;
- }
這樣做,有個問題,就是怎么確定length的長度為多少合適呢?
如果數(shù)據(jù)是從數(shù)據(jù)庫中查找出來的,那么就取數(shù)據(jù)庫中這個字段的最大長度即可。如果是從文件中讀取的,那么最好就是遍歷一下整個文件,從中獲取每個字段的最大長度。
最后將方法返回的str用輸出流寫入到文件中,換行的話使用out.write(lineSeparator)即可。