[转帖]java IO文件操作入门经典例子_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3958 | 回复: 0   主题: [转帖]java IO文件操作入门经典例子        下一篇 
css
注册用户
等级:上尉
经验:516
发帖:38
精华:0
注册:2013-1-11
状态:离线
发送短消息息给css 加好友    发送短消息息给css 发消息
发表于: IP:您无权察看 2013-1-14 9:26:54 | [全部帖] [楼主帖] 楼主

IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想。
 在公司没活干,复习了一下IO,发现很多都忘记了,所以写的不好,只够初学用。我把我复习过程中写的代码贴出来,大家共同学习,并请多指教指教哈。顺便一起讨论IO
 1、文件拷贝

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读文件:实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数,除此之外没有其他字符

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”出现的次数

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、 三种方法读取文件

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、三种方法写文件

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型数组中

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
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论