JAVA的I/O操作(一)

原创 2007年09月28日 00:18:00
    我一直奇怪于为什么在我前面所学到的内容里,没有从键盘输入的语句,而今天所学的给了我很好的解答,这些内容全部包括在java.io包下。这一篇里所讲到的东西包括,File类(如何创建和删除文件,对文件写入和从文件读出)。
    File类有两个构造方法,File(父目录,文件名),关联指定的目录下指定名称的文件,File(文件名/目录名),关联某个文件名或者目录,这里的/表示的意思是“或者”。
    比较好的方法是先用一个File对象关联一个目录名,然后创建这个目录,(mkdir()),再用构造方法构造一个文件。以下的代码是在“我的文档”里创建一个名为“1.txt”的文件。
  File dir=new File("C:"+File.separator+"Documents and Settings"+File.separator+"Yxy"+File.separator+"My Documents");  //此处注意转义字符
  dir.mkdir();  //创建目录
  File file1=new File(dir,"1.txt");
  file1.createNewFile();  //创建一个新文件
        String[] str1=dir.list();  //下文说到的list()
    //不知道为什么这里的空格硬是只能这么长,代码是我从我自己的代码里拷过来的,汗      
    //一个先
    各位,其实这里可以用转义字符“//”来代替File.separator,但是这不是一个好的习惯。为了实现Java的一次编译,四处运行的性感特点,我们需要一个通用的文件分隔符,因为各种操作系统下存在差异,比如linux的文件分隔符是正斜杠"/"。而File的特性separator正是获取当前操作系统下的文件分隔符。另,千万不要将让"/"单独存在,在代码中这是一个转义字符的标识,它会将接下来的一个字符理解为转义字符。
     除了这种方法可以创建新的文件,还可以调用File类下的一个静态函数
 File createTempFile(String prefix,String suffix,File directory),这是一个完整的版本,在指定的目录下创建一个以prefix为前缀名,suffix为后缀名的临时文件,通过deleteOnExit()来删除。但是还有一个精简的版本,
File createTempFile(String prefix,String suffix),没有指定目录,将在当前操作系统默认的临时文件夹里创建以prefix为前缀名,suffix为后缀名的临时文件。
     以上是如何创建文件,接下来讲的是如何查阅目录下的文件和通过文件过滤器查找文件。
    看到前面的代码里写到的list()方法了吗,返回一个String类型的数组,获取当前目录下的所有文件名,包括目录名(即文件夹)。但是,这样是不够的,无法找到我们所需要的文件,我们需要的是按我们的要求找到某个房间。Java.io包类提供类文件过滤器FileNameFilter,它是一个接口,内有方法boolean accept(File dir, String name),这是一个需要重写的方法,重写了这个方法之后,list(FileNameFileter f)方法可以列出符合我们要求的方法。
    以下是我练习的代码。
import java.io.*;
class FileNameFilterInstance implements FilenameFilter //文件过滤器
{
 public boolean accept(File dir,String name)
 {
  return name.indexOf(".java")!=-1; //注意返回类型,indexof()返回索引或者-1,而             //accept要求返回boolean
 }
}
class Test1
{
 public static void main(String[] args) throws Exception  //此处注意抛出异常
 {
  File dir=new File("C:"+File.separator+"Documents and Settings"+File.separator+"Yxy"+File.separator+"My Documents");  //此处注意转义字符
  dir.mkdir();
  File file1=new File(dir,"1.txt");
  file1.createNewFile();
  File file2=File.createTempFile("hello",".java",dir); //在dir指定目录下创建hello.java,前缀至少3字长
    String[] str1=dir.list();
  for(int i=1;i<str1.length;i++)
   System.out.println(str1[i]);
  System.out.println("--------------------------");
  String[] str2=dir.list(new FileNameFilterInstance());
  for(int i=0;i<str2.length;i++)
   System.out.println(str2[i]);
  file1.deleteOnExit();  //退出时删除文件
  file2.deleteOnExit();
  Thread.sleep(5000);
 }
}
/*在"我的文档"下创建1.txt和hello.java返回我的文档下的所有文件和目录名,并根据文件过滤器检查到hello.java,最后在退出时删除创建的文件,期间创建文件用到了createNewFile和静态方法createTempFile*/  

java i/o操作

1. I/O介绍:中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java.io是大多数面向数据流...
  • jiachangbin1989
  • jiachangbin1989
  • 2016年04月19日 16:07
  • 1066

android 基本I/O操作

Java中换行  \r\n 在整个IO包中,流的操作就分为两种: 字节流: 字节输出流 OutputStream、字节输入流 InputStream 字符流: ...
  • LK1105010206
  • LK1105010206
  • 2016年03月22日 16:04
  • 493

操作系统:I/O

操作系统:I/O 参考 http://blog.csdn.net/bigpudding24/article/details/48901473 1 I/O设备及其分类​ I/O设备管...
  • huhaijing
  • huhaijing
  • 2016年06月21日 09:21
  • 2123

深入分析Java I/O工作机制 学习笔记

Java的I/O类库的基本架构 Java的I/O操作类在包java.io下,大概有将近80个类,这些类大概可以分成如下四组。 1.基于字节操作的I/O接口:InputStream和OutputStr...
  • sunkobe2494
  • sunkobe2494
  • 2015年02月17日 14:08
  • 362

NodeJS学习笔记(一)——异步I/O的理解

操作系统对I/O的操作分为阻塞I/O和非阻塞I/O。阻塞I/O造成了CPU的等待,使CPU不能得到充分的利用;而非阻塞I/O虽然不必等待完整I/O的返回,但需要通过轮询重复的调用判断操作,这种判断操作...
  • Jacie_chaochao
  • Jacie_chaochao
  • 2015年11月30日 21:47
  • 1524

.NET I/O 操作

本文内容 流 Stream 涉及的一些基本操作 用于文件 I/O 的类 通用 I/O Stream 类 演示       如何向文本文件写入字符串       如何从文本文件读取字符串     ...
  • zzy7075
  • zzy7075
  • 2015年12月25日 08:49
  • 851

Java 字符串和文本I/O

字符串类String字符串 由字符构成的一个序列。在很多语言中,字符串都被当作字符数组来处理,在Java中,字符串是一个对象。构造一个字符串 String newString = new Strin...
  • u014496330
  • u014496330
  • 2016年07月11日 21:38
  • 438

I/O编程基础知识

编程语言的I/O类库中常常使用流这个抽象的概念,它代表任何有能力产生数据的数据源对象或时有能力接收数据的接收端对象。“流”概念源于UNIX中的管道(pipe)的概念。在UNIX中,管道是一条不间断的字...
  • gongweijiao
  • gongweijiao
  • 2012年11月23日 23:57
  • 1985

Java I/O 流详解

原文地址: http://blog.csdn.net/jiangwei0910410003/article/details/22376895 摘要: Java 流在处理上分为字符流和...
  • jason_rainbow
  • jason_rainbow
  • 2016年03月17日 11:40
  • 442

嵌入式LINUX下I/O资源的实现、管理和操作

作者:wincemobile 转自:http://blog.csdn.net/wincemobile/article/details/5898990 几乎每一种外设都是通过读写设备...
  • whw8007
  • whw8007
  • 2014年02月12日 08:57
  • 639
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA的I/O操作(一)
举报原因:
原因补充:

(最多只允许输入30个字)