文档章节

java IO文件操作入门经典例子

开源中国-不入流码农
 开源中国-不入流码农
发布于 2016/03/22 16:24
字数 899
阅读 12
收藏 0

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

Java code?

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
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?

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
  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?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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?

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
  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?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  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?

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
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();
         }


本文转载自:

开源中国-不入流码农
粉丝 2
博文 36
码字总数 3897
作品 0
杭州
程序员
私信 提问
少啰嗦!一分钟带你读懂Java的NIO和经典IO的区别

本文引用了“架构师社区”公众号的《史上讲的最好的Java NIO与IO的区别与应用》一文部分内容,感谢原作者的技术分享。 1、引言 很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典...

JackJiang2011
06/25
0
0
java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃
2018/05/30
0
0
java 7 入门书籍

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版...

modernizr
2014/05/15
7.6K
9
JavaIO/输出输入入门

IO称之为输入输出,Java的IO是通过java.io包下的类和接口来支持,包含两大类:输入,输出. 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Write...

Zhao-Qian
2013/01/04
476
0
从程序员走向java架构师的书籍推荐!

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想...

欧阳海阳
2018/07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PhotoShop 色调:理解直方图/RGB通道信息

一、直方图:图表的形式,展示图像像素分布的情况 1.平均值:表示平均亮度 2.标准偏差值:表示亮度值范围内的中间值 3.像素: 表示用于计算直方图的像素总数 4.色阶:显示指针下面的区域亮度...

东方墨天
14分钟前
5
0
wildfly(JBoss AS)应用服务器快速入门

什么是wildfly JBoss AS 从8版本起名为wildfly。Wildfly是一个开源的基于JavaEE的轻量级应用服务器。可以在任何商业应用中免费使用。 WildFly是一个灵活的、轻量的、强大管理能力的应用程序服...

程序新视界
39分钟前
2
0
Java集合类常见面试知识点总结

Java集合类学习总结 这篇总结是基于之前博客内容的一个整理和回顾。 这里先简单地总结一下,更多详细内容请参考我的专栏:深入浅出Java核心技术 https://blog.csdn.net/column/details/21930...

Java技术江湖
42分钟前
6
0
怎么用for循环打出爱心

先上效果图: 这是用*组成的爱心,下面讲讲思路: 首先这个图形可以拆分成三部分:第一部分是上面三行的两个梯形,第二部分是中间三行的长方形,第三部分是最下面的倒三角形。 其实图形拆分好...

INEVITABLE
48分钟前
4
0
用HttpUrlConnection伪造成HttpClient

https://www.jianshu.com/p/27ad06cc39d2

shzwork
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部