java io 操作

IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想。
在公司没活干,复习了一下IO,发现很多都忘记了,所以写的不好,只够初学用。我把我复习过程中写的代码贴出来,大家共同学习,并请多指教指教哈。顺便一起讨论IO
1、文件拷贝
Java code
   
   
try { File inputFile = new File(args[ 0 ]); if ( ! inputFile.exists()) { System.out.println( " 源文件不存在,程序终止 " ); System.exit( 1 ); } File outputFile = new File(args[ 1 ]); InputStream in = new FileInputStream(inputFile); OutputStream out = new FileOutputStream(outputFile); byte date[] = new byte [ 1024 ]; int temp = 0 ; while ((temp = in.read(date)) != - 1 ) { out.write(date); } in.close(); out.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }


2、java读文件:实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数,除此之外没有其他字符
Java code
   
   
String fileName = " D:/date.java.bak " ; // String fileName = "D:/test.qqq"; String line; int i = 0 , j = 0 , f = 0 , k = 0 ; try { BufferedReader in = new BufferedReader( new FileReader(fileName)); line = in.readLine(); while (line != null ) { // System.out.println(line); char c[] = line.toCharArray(); for ( int i1 = 0 ; i1 < c.length; i1 ++ ) { // 如果是字母 if (Character.isLetter(c[i1])) i ++ ; // 如果是数字 else if (Character.isDigit(c[i1])) j ++ ; // 是空格 else if (Character.isWhitespace(c[i1])) f ++ ; } line = in.readLine(); k ++ ; } in.close(); System.out .println( " 字母: " + i + " ,数字: " + j + " ,空格: " + f + " ,行数: " + k); } catch (IOException e) { e.printStackTrace(); }

3、 从文件(d:\test.txt)中查出字符串”aa”出现的次数
Java code
   
   
try { BufferedReader br = new BufferedReader( new FileReader( " D:\\test.txt " )); StringBuilder sb = new StringBuilder(); while ( true ) { String str = br.readLine(); if (str == null ) break ; sb.append(str); } Pattern p = Pattern.compile( " aa " ); Matcher m = p.matcher(sb); int count = 0 ; while (m.find()) { count ++ ; } System.out.println( " \"aa\"一共出现了 " + count + " " ); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

4、 三种方法读取文件
Java code
   
   
try { // 方法一 BufferedReader br = new BufferedReader( new FileReader( new File( " D:\\1.xls " ))); // StringBuilder bd = new StringBuilder(); StringBuffer bd = new StringBuffer(); while ( true ) { String str = br.readLine(); if (str == null ) { break ; } System.out.println(str); bd.append(str); } br.close(); // System.out.println(bd.toString()); // 方法二 InputStream is = new FileInputStream( new File( " d:\\1.xls " )); byte b[] = new byte [Integer.parseInt( new File( " d:\\1.xls " ).length() + "" )]; is.read(b); System.out.write(b); System.out.println(); is.close(); // 方法三 Reader r = new FileReader( new File( " d:\\1.xls " )); char c[] = new char [( int ) new File( " d:\\1.xls " ).length()]; r.read(c); String str = new String(c); System.out.print(str); r.close(); } catch (RuntimeException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

5、三种方法写文件
Java code
   
   
try { PrintWriter pw = new PrintWriter( new FileWriter( " d:\\1.txt " )); BufferedWriter bw = new BufferedWriter( new FileWriter( new File( " d:\\1.txt " ))); OutputStream os = new FileOutputStream( new File( " d:\\1.txt " )); // 1 os.write( " ffff " .getBytes()); // 2 // bw.write("ddddddddddddddddddddddddd"); // 3 // pw.print("你好sssssssssssss"); bw.close(); pw.close(); os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

6、读取文件,并把读取的每一行存入double型数组中
Java code
   
   
try { BufferedReader br = new BufferedReader( new FileReader( new File( " d:\\2.txt " ))); StringBuffer sb = new StringBuffer(); while ( true ) { String str = br.readLine(); if (str == null ) { break ; } sb.append(str + " " ); } String str = sb.toString(); String s[] = str.split( " " ); double d[] = new double [s.length]; for ( int i = 0 ; i < s.length; i ++ ) { d[i] = Double.parseDouble(s[i]); } for ( int i = 0 ; i < d.length; i ++ ) { System.out.println(d[i]); } br.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值