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();
}
}
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();
}
}
相关文章推荐
- 08---java IO编程04
- java编程思想笔记01-对象导论
- Java编程思想-IO系统
- java NIO非阻塞式IO网络编程学习笔记(一)
- JAVA Socket编程学习5--IO模型
- JAVA IO 流 笔记 01
- Java IO编程全解(六)——4种I/O的对比与选型
- Java编程----时间效率01
- Java并发编程札记-(三)JUC原子类-01概述
- Java手机游戏编程之MIDP图形设计篇01
- Java 编程下 IO 中的输入流的 read() 方法返回值为什么是 int 值
- 解决MapReduce编程过程中的 java.io.FileNotFoundException 问题
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- Python08_IO编程
- Java 之文件IO编程 之读取
- java io系列08之 File总结
- 五十道编程小题目 --- 08 求s=a+aa+aaa+aaaa+aa...a的值 java
- java学习之io编程(记事本功能实现)
- 01 Java并发编程-线程相关概念
- Java 编程下 IO 中的输入流的 read() 方法返回值为什么是 int 值