文章评分
次,平均分 :
虽然JAVA提供了丰富的输入输出流类和方法,但是对于非字符类型的数据来说,还是不大方便。所以对于int之类的数据的输入输出的方式,只能是 “八仙过海,各显神通”了。下面结合一个写入和读取数据到文件的小例子,说一下笔者的方式,希望对初学者能有些许帮助。
问题描述:
编写程序产生100个1到100之间的随机数并写入到文件中,然后从文件中读出后排序,写入到另一个文件。
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import java.io.*; import java.util.*; public class WriteRead { public static void main(String[] args) { Random rd=new Random(); int nNum[]=new int[100]; for(int i=0;i<100;i++) { nNum[i]=(int)(rd.nextDouble()*100); //产生100个随机数 } //把100个整型数以字符流形式写入文件中 try { FileWriter file=new FileWriter("first.txt"); for(int i=0;i<nNum.length;i++) { String str=String.valueOf(nNum[i])+" "; //将整型数转化为字符串,并在后面加个空格以分隔各个整数 file.write(str); } file.close(); } catch(IOException e) { System.out.println(e.toString()); } //从文件中读取100个整数,并进行排序,再把数据写入一个新的文件 try { FileReader fr=new FileReader("first.txt"); int[] n=new int[100]; BufferedReader buff=new BufferedReader(fr); String str=""; //读取first。txt文件中的数据(字符串形式),存入str中 while(true) { String line=buff.readLine(); //一次读取一行,加快读取速度 if(line==null) //判断是否读取完毕 break; str=str+line; } buff.close(); //使用StringTokenizer类将字符串str分解,这里的分隔符是空格 StringTokenizer st=new StringTokenizer(str); for(int i=0;st.hasMoreTokens();i++) n[i]=Integer.parseInt(st.nextToken()); //将分解的字符串转化为整数,并存入数组 Arrays.sort(n); //排序 //写入文件 FileWriter file=new FileWriter("second.txt"); for(int i=0;i<n.length;i++) { String s=String.valueOf(n[i])+" "; file.write(s); } file.close(); } catch(IOException e) { System.out.println(e.toString()); } } } |

关注我的微信,获取文章更新
如果你觉得这篇文章对你有用,可以点击下面的“赞助作者”打赏作者!
转载注明原文出处:王柏元的博客>>https://wangbaiyuan.cn/java-inputoutput-streams-at-a-glance-2.html
暂无评论