Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4450618
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: Java

2015-08-13 14:50:36

原文地址:http://blog.csdn.net/xtj332/article/details/6671120

java里面关于文件输入输出的方法差不多有这三种:FileWrite,FileReader> ;<FileOutputStream,FileInputStream>;<OutputStreamWrite,InputStreamReader>。但个人觉得最简单的方法当属第一种。对于初学者来说,输入输出流的嵌套,转换最让人头疼。一会in,一会又out的,很麻烦。而使用FileWrite,FileReader> 可以避免这种混乱,从文件里面读数据就用FileReader里面的read方法,往文件里面写数据就用FileWriter里面的write方法。废话少说,直接上码!(虽然有码无码在有些人的眼里都是浮云.....)

因为简单,所以几行代码更容易解释清楚。(大部分的代码都是捕获异常的自动生成的代码。)

[java] view plaincopy
  1. <span style="color:#990000;">        </span>File file1 = new File("/home/a123/a"); // 这种路径名格式是在Unix下面的路径格式,在Windows下面的路径格式类似" C:\\test\\  "这样,注意区别  
  2.         if (file1.exists()) {  
  3.             System.out.println("存在文件夹a");  
  4.         } else {  
  5.             file1.mkdir(); // 文件夹的创建 创建文件夹/home/a123/a  
  6.         }  
  7.         File file2 = new File("/home/a123/a/test");  
  8.         if (file2.exists()) {  
  9.             System.out.println("存在文件夹或者文件test");  
  10.         } else {  
  11.             try {  
  12.                 file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别  
  13.             } catch (IOException e) {  
  14.                 // TODO Auto-generated catch block  
  15.                 e.printStackTrace();  
  16.             }  
  17.         }  
  18.   
  19.         /** 
  20.          * 最简单的文件读写方法是使用类FileWriter 
  21.          * (它的父类依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object ); 
  22.          */  
  23.   
  24.         // 下面是向文件file2里面写数据  
  25.         try {  
  26.             FileWriter fileWriter = new FileWriter(file2);  
  27.             String s = new String("This is a test!  \n" + "aaaa");  
  28.             fileWriter.write(s);  
  29.             fileWriter.close(); // 关闭数据流  
  30.               
  31.   
  32.         } catch (IOException e) {  
  33.             // TODO Auto-generated catch block  
  34.             e.printStackTrace();  
  35.         }  
  36.   
  37.         /* 
  38.          * 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。 
  39.          * 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可: 
  40.          * FileWriter fileWriter=new FileWriter(file2,true); 
  41.          */  
  42.   
  43.         // 下面是从文件file2读东西  
  44.         try {  
  45.             FileReader fileReader = new FileReader(file2);  
  46.             String s = null;  
  47.             char ch;  
  48.             try {  
  49.                 char[] c = new char[100];  
  50.                 fileReader.read(c,0,2); // 具体想得到文件里面的什么值(单个char?int?还是String?),  
  51.                 System.out.println(c);  
  52.                 fileReader.close();  
  53.   
  54.             } catch (IOException e) {  
  55.                 // TODO Auto-generated catch block  
  56.                 e.printStackTrace();  
  57.             }  
  58.   
  59.         } catch (FileNotFoundException e) {  
  60.             // TODO Auto-generated catch block  
  61.             e.printStackTrace();  
  62.         }  
  63.         /** 
  64.          * 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法: 
  65.          *  1. int read()       读取单个字符。       
  66.          *  2. int read(char[] cbuf) 将字符读入数组。    可以再将字符型数组转化位字符串     
  67.          *  3.  int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。 
  68.          * 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1. 
  69.          */  
  70.   
  71.     }  

              *****转载请注明远处出和作者:http://blog.csdn.net/xtj332
阅读(977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~