黑马程序员--java高级视频输入、输出流(1)
2011-06-04 18:37
183 查看
学习笔记:
1.File类
File类:是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。
File类定义了一些与平台无关的方法来操纵文件,比如: 创建文件、删除文件、复制文件等等。
构造方法
public File(String path);
public File(String path,String name);
public File(File parent,String chile);
路径问题: java可以正确处理不同系统下的路径分隔符
在不同的操作系统上,分隔符是不一样的,在Unix下的路径分隔符为(/),
在Dos下的路径分隔符为(/)
下面是个例子:要完成的功能:判断某个文件是否存在,存在则删除,不存在则创建。
public class FileTest{
public static void mian(String [] args){
//创建对象
File file = new File("aa.txt");
if(file.exists()){
//删除
file.delete();
}else{
//创建
file.createNewFile();
}
System.out.println(file.getName);
System.out.println(file.getPath);
}
}
2.RandomAccessFile类
RandomAccessFile类:提供了众多的文件访问方法。支持“随机访问”方式,且仅限于操作文件
创建一个RandomAccessFile对象
RandomAccessFile(File file,String mode) ;
RandomAccessFile(String name,String mode);
读写数据的常用方法:
读、写基本数据类型: readInt();writeInt(int n)等;
读、写UTF字符串: readUTF();writeUTF(String str);
读 取文件中的一行: readLine();
下面的例子: 往文件里写三名员工的信息,第个员工含有姓名和年龄两个属性,
然后按照第二名,第一名, 第二名 的先后顺序读出员工信息。
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Employee {
public String name=null;
public int age=0;
//public static final int LEN = 8;
public Employee(String na, int ag){
this.name=na;
this.age=ag;
}
public static class RandomFileTest{
public static void main(String[] args) throws IOException{
Employee emp1 =new Employee("张三",22);
Employee emp2 =new Employee("李四",23);
Employee emp3 =new Employee("王五",20);
RandomAccessFile raf = new RandomAccessFile("aa.txt","rw");
raf.write(emp1.name.getBytes());
raf.write(emp1.age);
raf.write(emp2.name.getBytes());
raf.write(emp2.age);
raf.write(emp3.name.getBytes());
raf.write(emp3.age);
raf.close();
int len=0;
byte[] buf =new byte[8];
RandomAccessFile rand = new RandomAccessFile("aa.txt","r");
rand.skipBytes(12);
len=rand.read(buf);
String strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.seek(0);
len=rand.read(buf);
strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.skipBytes(12);
len=rand.read(buf);
strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.close();
}
}
}
1.File类
File类:是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。
File类定义了一些与平台无关的方法来操纵文件,比如: 创建文件、删除文件、复制文件等等。
构造方法
public File(String path);
public File(String path,String name);
public File(File parent,String chile);
路径问题: java可以正确处理不同系统下的路径分隔符
在不同的操作系统上,分隔符是不一样的,在Unix下的路径分隔符为(/),
在Dos下的路径分隔符为(/)
下面是个例子:要完成的功能:判断某个文件是否存在,存在则删除,不存在则创建。
public class FileTest{
public static void mian(String [] args){
//创建对象
File file = new File("aa.txt");
if(file.exists()){
//删除
file.delete();
}else{
//创建
file.createNewFile();
}
System.out.println(file.getName);
System.out.println(file.getPath);
}
}
2.RandomAccessFile类
RandomAccessFile类:提供了众多的文件访问方法。支持“随机访问”方式,且仅限于操作文件
创建一个RandomAccessFile对象
RandomAccessFile(File file,String mode) ;
RandomAccessFile(String name,String mode);
读写数据的常用方法:
读、写基本数据类型: readInt();writeInt(int n)等;
读、写UTF字符串: readUTF();writeUTF(String str);
读 取文件中的一行: readLine();
下面的例子: 往文件里写三名员工的信息,第个员工含有姓名和年龄两个属性,
然后按照第二名,第一名, 第二名 的先后顺序读出员工信息。
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Employee {
public String name=null;
public int age=0;
//public static final int LEN = 8;
public Employee(String na, int ag){
this.name=na;
this.age=ag;
}
public static class RandomFileTest{
public static void main(String[] args) throws IOException{
Employee emp1 =new Employee("张三",22);
Employee emp2 =new Employee("李四",23);
Employee emp3 =new Employee("王五",20);
RandomAccessFile raf = new RandomAccessFile("aa.txt","rw");
raf.write(emp1.name.getBytes());
raf.write(emp1.age);
raf.write(emp2.name.getBytes());
raf.write(emp2.age);
raf.write(emp3.name.getBytes());
raf.write(emp3.age);
raf.close();
int len=0;
byte[] buf =new byte[8];
RandomAccessFile rand = new RandomAccessFile("aa.txt","r");
rand.skipBytes(12);
len=rand.read(buf);
String strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.seek(0);
len=rand.read(buf);
strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.skipBytes(12);
len=rand.read(buf);
strName = new String(buf,0,len);
System.out.println(strName+raf.read());
rand.close();
}
}
}
相关文章推荐
- 黑马程序员高级学习视频IO输入输出流 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- 黑马程序员 —— Java高级视频_IO输入与输出(第十九天)1
- 黑马程序员 —— Java高级视频_IO输入与输出(第十九天)2
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-1(System)
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-4(文件的续写)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-4(MyBufferedReader)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-9(读取键盘录入)
- 黑马程序员 —— Java高级视频_IO输入与输出(第二十天)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-8(拷贝图片)
- 黑马程序员-JAVA高级视频_IO输入与输出-20天-3(File文件递归)
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-5(文本文件读取方式一)
- 黑马程序员-JAVA高级视频_IO输入与输出-20天-4(File文件写入)
- 黑马程序员 —— Java高级视频_IO输入与输出(第二十一天)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-10(读取转换流)
- 黑马程序员-JAVA高级视频_IO输入与输出-20天-6(File文件删除)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-6(LineNumberReader与自定义LineNumberReader)
- 黑马程序员-JAVA高级视频_IO输入与输出-20天-2(File文件列表)
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-2(FileWriter)
- 黑马程序员-JAVA高级视频_IO输入与输出-19天-5(装饰设计模式)
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-6(文本文件读取方式二)