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

08---java IO编程01

2012-02-27 09:41 363 查看
分为三大类:File类,文件操作类;字节操作类;字符操作类;

1、File类:

File类是IO包中唯一代表磁盘文件本身的对象,File类定义来了一些

与平台无关的方法来操作文件,通过调用File类提供的各种方法,能够

创建、删除、重命名文件,判断文件的读写权限是否存在,设置和查询文件的最近修改时间;

直接与文件操作有关的类;

在F盘上创建一个test.txt 文件;

注意用IO类时要导入java.io.*;java.lang是默认导入的,别的包不是,所以得导入;

2、如果文件存在则删除,不存在则创建:

import java.io.*;

public class Demo{

public static void main(String args[]){

File f=new File("D:\\test.txt");

if(f.exists()){

f.delete();

}

else{

try{

f.createNewFile();

}

catch(Exception e){

}

}

}

}

3、列出目录下的所有文件:

import java.io.*;

public class Demo{

public static void main(String args[]){

File f=new File("D:\\javademo");

//返回目录下的所有文件

//为了防止传的值不是路径

if(f.isDirectory()){

String str[]=f.list();

for(int i=0;i<str.length;i++){

System.out.println(str[i]);

}

}

else{

System.out.println("不是目录");

}

}

}

4、已经明确知道了可以通过File类找到全部的文件

问题:能不能使用File类取出D盘下的全部文件?

因为File()中传的必须是完整的路径,而只给一个D盘不算是完整的

路径;它只会将D盘下的文件列出来,而D盘下的文件夹的文件是列不出来的,

只会列出文件夹的名字;

这时用到了递归,用递归方法来实现:

递归:一个方法调用自己的方法;

import java.io.*;

public class Demo{

public static void main(String args[]){

loop("D:\\");

}

public static void loop(String dir){

File f=new File(dir);

String str[]=null;

if(f.isDirectory()){

str=f.list();

for(int i=0;i<str.length;i++){

//递归

loop(dir+"\\"+str[i]);

}

}

else{

System.out.println(dir);

}

}

}

5、创建文件的内容:

数据流:

数据流是指所有的数据通信通道;

在java中有关流的的操作使用java.io.*;

出于安全的考虑,小应用不能实现文件I/O流---小应用程序指的是不带main方法的applet程序;

读写过程:

以读一本书为例子,首先找到一本书;读入文字到大脑中;关闭书本(不读了);

读 写

打开一个流 打开一个流

如果有信息,则读入 如果有信息,则写入

关闭流 关闭流

(1)---RandomAccessFile类:

import java.io.*;

public class Demo{

public static void main(String args[]) throws Exception{

//随记读取

RandomAccessFile raf1=new RandomAccessFile("D:\\java.txt","rw");

//随记读取有个限制,就是说如果要进行操作,则必须制定好存储数据的长度;

//保存姓名(8为字符即占8个字节 )和年龄(int 占4个字节):

String name="zhangsan";

int age=20;

raf1.write(name.getBytes());

raf1.writeInt(age);

//raf1.close();

//写入第二个数据

name="lisi";

age=30;

raf1.write(name.getBytes());

raf1.writeInt(age);

raf1.close();

//取第二个组数据

RandomAccessFile raf2=new RandomAccessFile("D:\\java.txt","r");

raf2.skipBytes(12);

byte b[]=new byte[4];

raf2.read(b);

int age2=raf2.readInt();

System.out.println(new String(b)+"---->"+age2);

raf2.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: