您的位置:首页 > 编程语言 > Java开发

第七课 java i/o 操作

2008-12-31 16:17 190 查看
第七课[/b] java i/o [/b]操作[/b][/b]
I/O操作相关类都是放在java.io包中的。
File类:一个File类对象表示了磁盘上的一个文件或者一个目录
File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作
如何在当前目录下创建一个文件,路径文件夹文件以及如何删除等等:
import java.io.*;
class FileTest
{
public static void main(String[] args) throws Exception
{
//在当前路径创建文件
File fi1 = new File("111.txt");
fi1.createNewFile();
//因为在java中反斜杠会被认为是转义符号,所以要正常使
//用反斜杠/就必须在符号/之后再添加一个反斜杠,如下:

//在绝对路径创建文件
File fi2 = new File("E://javaLession//Lession7//122.txt");
fi2.createNewFile();

//但是上面的双斜杠//在linux下就无法运行了,如何编写与系统无关的代码呢??
//File类为我们提供了一个分隔符常量File.separator来实现平台无关
//如何创建一个根目录呢?如下所示:
File fi3 =new File(File.separator); //她创建的是当前文件所在的盘的根目录,当前文件在E盘就是e盘的根目录
//下面这行代码在windows下解释成反斜杠,在linux下解释成政协杠
String str4 =fi3.toString()+"javaLession"+File.separator+"Lession7"+File.separator+"ww4.txt";
File fi4 = new File(str4);
boolean ss4=fi4.createNewFile();
System.out.println(ss4); //当前文件存在打印false,不存在将创建文件并打印true
//当然上面str4可以直接向下面这样写更明白:(效果一样,而且更容易明白)
String str5 =File.separator+"javaLession"+File.separator+"Lession7"+File.separator+"ww5.txt";
File fi5 = new File(str5);
boolean ss5=fi5.createNewFile();
System.out.println(ss5);

//下面演示如何删除文件
fi5.delete(); //删除此抽象路径名表示的文件或目录
fi4.deleteOnExit(); //此方法表示在程序终止时,请求删除此抽象路径名表示的文件或目录
Thread.sleep(5000); //5秒之后,fi4所代表的文件就会被删除, 但是fi5创建时立即就被删除了哦

//下面在自己创建的目录下创建文件,也就是说只能使用这个
//mkdir()方法才能在磁盘没有的目录下创建文件和生成文件夹
File fi6 =new File("E://ja112233");
File fi7 =new File("E://ja112233//555.txt");
fi6.mkdir(); //创建目录,但是注意,虽然此步骤创建了一个目录,但是如果不在此目录下创建文件,此目录是不会被创建的
fi7.createNewFile(); //只有在fi6所代表的目录下执行createNewFile()创建了一个文件,这个目录才会被生成
}
}

上面例子也介绍了如何删除文件,但是File类也为我们提供了创建临时文件的方法。
创建临时文件[/b] [/b]第七课[/b] B[/b]
createTempFile(String prefix, String suffix)

在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
注意在后缀名前要加个.点号。如果前缀参数包含少于三个的字符,将抛出异常
createTempFile(String prefix, String suffix, File directory)

在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
import java.io.*;
class FileTest2
{
public static void main(String[] args) throws Exception
{
for(int i=0;i<5;i++)
{
////此方法是在默认临时文件目录中创建临时文件
File f =File.createTempFile("myTeam",".tmp");

//如何在自定义文件夹下创建临时文件呢??
File fi2 = new File("E://javaLession//Lession8//");
fi2.mkdir(); //这步跟创建普通文件是一样的道理哦

File fi3 =File.createTempFile("myTeam",".tmp",fi2);

//一般临时文件退出时都需要删除
f.deleteOnExit();
fi3.deleteOnExit();
Thread.sleep(5000);
}
}
}
在File类中还有个list()方法,返回由此抽象路径名所表示的目录中的文件名和文件夹名称所组成字符串数组。第七课[/b] B 4300[/b]
当然你在使用list()方法查询某个目录时,可使用这个带有文件过滤器参数的方法:
listFiles(FilenameFilter filter)
。此过滤器是一个方法,你当然得实现它才行。

在File类中没有给我们提供对文件进行读取或者修改的方法。Java中这种操作是通过流(stream)来实现的。
能从中读取一系列字节的对象称为输入流,能向其中写入一系列字节的对象称为输出流。
还有节点流和过滤流。节点流就是只从特定地方读写的流类,例如磁盘或者内存。过滤流就是只使用已经存在的节点流链接在创建的。
InputStream和OutputStream都是抽象的基类,
InputStream有3个基本的读方法:
1 abstract int read() 读取一个字节的数据并作为整型(整型有4个字节)返回它,返回-1表示已到输入流末尾。
2 public int read(byte[] b) throws IOException
3 int read(byte[] b, int off, int len)
close()关闭输入流,释放该流的系统资源
OutputStream也有3个相应的基本写方法。
下面是一个使用java标准的输入和输出流的操作:
public class StreamTest
{
public static void main(String[] args) throws Exception
{
int myData=System.in.read();
while(myData!=-1)
{
System.out.write(myData);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: