用java的i/o读写文件,举一反三看清io的使用-阿里云开发者社区

开发者社区> 像教授> 正文

用java的i/o读写文件,举一反三看清io的使用

简介:
+关注继续查看
java的i/o恐怕是java体系里最复杂的内容之一了,有时候这个之一可以去了。不像c语言一个fopen()就可以解决一大堆问题。到了java 呢,又是stream又是reader,读一个文件的方式不下十种,造成很多人因此而放弃了java,当初刚学java的时候班里很多人都对java有很 高的热情,可到了现在,不知道还有多少人坚持下来了。具有讽刺意味的事java i/o的设计者的初衷是让i/o变得简单一点,哪知道若干年后,弄出这么一大摊子来。现在又加了一个nio----就是newio,不知道日后还会弄出什 么东西来。
 
用i/o可以解决文件,网络通讯等几乎所io问题。功能强大,唯一的缺点就是复杂。但仔细一分析,还是有门路可走的。整个io体系主要分为两大门派。一派 为流类也就是用于字节的InputStream和OutputStream,另一派为用于字符的Reader和Writer派(简称rw派)。认清了这两 派就知道*Stream的东东全都是流派的,不是继承而来就是通过实现接口而来。如此,*Reader,*Writer那就是出身于rw派了。还有一个 File派来处理文件创建,删除,修改,属性问题。对文件的内容进行操作不是他的工作。搞清楚这两大派一小派那么解决io指日可待。
 
那么说了这么多怎么创建文件呢?举例说明(主函数就不写了)
File newfile = new File("text.txt");
newfile.createNewFile();
这样就在同一个文件夹下创建了一个名为text.txt的文本文件,那枚怎么删除呢?
File newfile = new File("text.txt");
newfile.delete();
这样就把这个文件删除了。是不是很简单呢。那么怎么把文件写入这个文本文件呢?
File writetext = new File("text.txt");
[readtext.createNewFile();]//可有可无,因为文件不存在的话,会自动创建
FileWriter fw = new FileWriter(writetext);//就像创建打印机
PrintWriter pw = new PrintWriter(fw);//这个呢打印针头了。
pw.println("this is a new file for read");//这个是说,把这些东西给我写进去吧
fw.close();//然后关闭打印机
有点复杂,当懂了以后,也就感觉不到什么了,那么如何读取这个文本文件呢?
File readtext = new File("text.txt");
FileReader fr = new FileReaer(readtext);//创建一个扫描仪
BufferedReader br = new BufferedReader(fr);//这是扫描仪内的缓存
String content = br.readLine(); //读一行文本
 
用熟练了之后可以这么写:
BufferedReader in = new BufferedReader(new FileReader("text.txt");
String content="";
while((content=in.readLine())!=null){
    System.out.println(content);//读一行输出一行
}
 
要特别注意的是,我为了不搞得太复杂,把异常处理都去掉了,如果你用netbeans的话,点几下小灯泡,就加上异常处理语句,至于用原始工具的话,那就需要辛苦一下了。
这里介绍的知识io世界里的一种方法,当时当你掌握了门道之后,其他的东西也就迎刃而解了,祝你好运!



本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/134213,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ArcEngine真正释放锁文件,彻底移除图层
ArcMap在加载图层时会自动生成一个lock格式的加锁文件,右击移除图层后,加锁文件也会自动删除。但AE开发中却不能正常删除,移除图层后加锁文件依然存在,这就导致在其他地方无法对该图层进行操作,只有关闭程序才能删除加锁文件,彻底释放资源。
726 0
Java对文件的读、写随机访问,RandomAccessFile类的使用分析
  在网上看了一些关于java中的RandomAccessFile类的介绍,又经过查看Java API和自己编的测试程序,总算是对RandomAccessFile的使用有了一定的了解。自己做了以下比较详细的总结吧。
1001 0
Python——文件IO
打印到屏幕 print 读取键盘输入 input: str = input('请输入:') print(str) raw_input 用法跟input相同,但是input函数能接收一个表达式作为输入,raw_input则不ok;另外,py3里面,已经没有这个函数了。
667 0
java多线程 -- ReadWriteLock 读写锁
写一条线程,读多条线程能够提升效率。 写写/读写 需要“互斥”;读读 不需要互斥. ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。
755 0
Java数据导出(写)Excel文件 解析
  在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java写入数据到excel表格方法:   1.添加jar文件     java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
835 0
第二十章:异步和文件I/O.(十)
适应Windows运行时文件I/O.Windows运行时API定义了一个全新的文件I / O类数组。 对此的部分推动力是认识到从桌面应用程序相对不受限制的文件访问向更沙盒化的环境转变的行业范围。大多数新文件I / O API都可以在Windows运行时命名空间Windows.Storage和Windows.Storage.Streams中找到。
644 0
下载后自动打开(更改IE下载文件后的默认处理方法)
笔者用IE下载RAR文件的时候,不小心将那个“在打开这种类型的文件前始终询问”前面的复选框去掉了。结果现在下载所有的RAR压缩文件不提示保存对话框,直接下载完毕后就用WinRAR打开压缩包,而其他类型的扩展名正常。
669 0
+关注
1054
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载