IO 总结 (转)
来源:互联网 发布:天堂ii mac 编辑:程序博客网 时间:2024/04/29 06:18
(1).使用File类进行文件操作。
(2).使用字节流读写文件。
(3).使用字符流读写文件。
使用File类操作目录:
File类主要常量及方法 :
方法或常量
类型
描述
String separator
常量
文件路径分隔符
public File(String filename)
构造方法
创建File类对象并传入完整路径
public boolean createNewFile()
方法
创建新文件
public boolean delete()
方法
删除文件
public boolean exists()
方法
判断文件是否存在
public boolean isDirectory()
方法
判断给定的路径是否为目录
public long length()
方法
返回文件的大小
public String[] list()
方法
列出指定目录的全部内容,只列出名称
public File[] listFiles()
方法
列出指定目录的全部内容
public boolean mkdir()
方法
创建目录
public boolean renameTo(File dest)
方法
为已有的文件重命名
示例:
判断文件是否存在,不存在则创建,存在则删除
- package
com.soft.test; -
- import
java.io.File; - import
java.io.IOException; -
- public
class Test1 { - public
static void main(String[] args) { -
File f=new File( "c:/1.txt"); -
if(f.exists()){ -
f.delete(); -
}else{ -
try { -
f.createNewFile(); -
} catch (IOException e) { -
// TODO Auto-generated catch block -
e.printStackTrace(); -
} -
} -
System.out.println("文件的名称"+f.getName()); -
System.out.println("文件的路径"+f.getPath()); -
System.out.println(f.canWrite()?"文件可写":"文件不可写"); -
System.out.println(f.isDirectory()?"文件是目录":"文件不是目录"); -
System.out.println("文件的长度:"+f.length()); - }
- }
列出指定目录下的文件:
- package
com.soft.test; -
- import
java.io.File; -
-
- public
class Test3 { - public
static void main(String[] args) { -
File f=new File( "d:"); -
String[] str=f.list(); -
for(int i= 0;i<str.length;i++){ -
System.out.println(str[i]); -
} - }
- }
RandomAccessFile类读写文件
方法
类型
描述
public RandomAccessFile(File f,String mode)
构造方法
接收File类,并设置r为只读、w为只写、rw为读写模式
public RandomAccessFile(String name,String mode)
构造方法
输入固定的文件路径并设置模式
public int read(byte[] b)
方法
将内容读取到byte数组中
public final byte readByte()
方法
读取一个字节
public final int readInt()
方法
从文件中读取整型数据
public void seek(long pos)
方法
设置读指针的位置
public final void writeBytes(String s)
方法
将一个字符串写入文件中
public final void writeInt(int v)
方法
将一个整型数据写入文件
public int skipBytes(int n)
方法
指针跳过多少个字节
例:
- package
com.soft.test; -
- import
java.io.File; - import
java.io.FileNotFoundException; - import
java.io.IOException; - import
java.io.RandomAccessFile; -
-
- public
class Test4 { - public
static void main(String[] args) { -
File f=new File( "c:"+File.separator+"demo.txt"); -
try { -
RandomAccessFile rdf=new RandomAccessFile(f, "rw"); -
String name=null; -
int age= 0; -
name="tome"; -
age=18;//整数在内存中占四个字节大小 -
try { -
rdf.writeBytes(name); -
rdf.writeInt(age); -
name="mike"; -
age=90; -
rdf.writeBytes(name); -
rdf.writeInt(age); -
rdf.close(); -
} catch (IOException e) { -
// TODO Auto-generated catch block -
e.printStackTrace(); -
} -
-
} catch (FileNotFoundException e) { -
// TODO Auto-generated catch block -
e.printStackTrace(); -
} - }
- }
字节流:InputPutStream和OutputStream
方法
描述
public void close()
关闭输入流
public abstract int read()
以数字的方式读取内容
public int read(byte[] b)
将内容读到byte数组中,同时返回读入的个数
方法
描述
public void close()
关闭输出流
public abstract void write(int b)
在数据流中写入一个字节
public void write(byte[] b,int off,int len)
在数据流中写入一个指定范围的byte数组
public void write(byte[] b)
在数据流中写入一个byte数组
public void flush()
刷新缓冲区
- package
com.soft.test; -
- import
java.io.File; - import
java.io.FileInputStream; - import
java.io.FileNotFoundException; - import
java.io.FileOutputStream; - import
java.io.InputStream; - import
java.io.OutputStream; -
- public
class Test6 { - public
static void main(String[] throwsargs) Exception { -
File f=new File( "c:/demo.txt");//打开文件 -
OutputStream os=new FileOutputStream(f); -
String str="hello word!" ; -
os.write(str.getBytes()); -
-
InputStream is=new FileInputStream(f); -
byte[] b= newbyte[1024]; -
int len=is.read(b); -
System.out.println(new String(b, 0,len)); - }
- }
BufferedInputStream(InputStream in)
BufferedOutputStream(OutputStream in)
BufferedOutputStream(OutputStream in,int size)
- package
com.soft.test; -
- import
java.io.BufferedInputStream; - import
java.io.BufferedOutputStream; - import
java.io.FileInputStream; - import
java.io.FileNotFoundException; - import
java.io.FileOutputStream; - import
java.io.IOException; - import
java.io.InputStream; - import
java.io.OutputStream; -
-
- public
class Test7 { - public
static void main(String[] throwsargs) IOException { -
byte[] b= newbyte[1]; -
InputStream is=new FileInputStream( "c:/demo.txt"); -
OutputStream os=new FileOutputStream( "c:/demo1.txt"); -
BufferedInputStream bui=new BufferedInputStream(is); -
BufferedOutputStream buo=new BufferedOutputStream(os); -
while(bui.read(b)!=-1){ -
buo.write(b); -
} -
buo.flush();//强制输出缓冲区的数据 -
bui.close(); -
buo.close(); - }
- }
字符流
方法
描述
public abstract void close()
关闭输入流
public int read()
读取单个字符
public int read(char[] c)
将内容读取到字符数组中,并返回读取的长度
方法
描述
public abstract void close()
关闭输出流
public void write(String str)
输出字符串
public void write(char[] c)
输出字符数组
public abstract void flush()
强制清空缓存
- File
f new= File( "d:/demo.doc"); - Writer
out = new FileWriter(f); -
- out.write("hello
world" ); - out.close();
- Reader
reader = new FileReader(f); - char
c[] new= char[1024]; - int
len //将内容读取到字符数组中= reader.read(c); - System.out.println(new
String(c, 0,len)); - out.close();
- reader.close();
- File
f new= File( "d:/demo.txt"); - OutputStreamWriter
os = new OutputStreamWriter( newFileOutputStream(f)); - os.write("hello
world" ); - os.close();
File f = new File("d:/demo.txt");
//字节流变为字符流
- InputStreamReader
reader= newInputStreamReader( newFileInputStream(f)); -
- char[]
c new= char[1024]; -
- int
len = reader.read(c); -
- System.out.println(new
String(c, 0,len)); -
- reader.close();
方法
类型
描述
public BufferedReader(Reader in)
构造方法
接收Reader类实例
public String readLine()
方法
从缓冲区中读取一行文本
public int read()
方法
读取单个字符
public int read(char[] c,int off,int len)
方法
读取字符数组的一部分
方法
类型
描述
public BufferedWriter(Writer out)
构造方法
接收Writer类实例
public void newLine()
方法
写入一个行分隔符
public void write(int c)
方法
写入单个字符
public void write(char[] c,int off,int len)
方法
写入字符数组的一部分
public void write(String s,int off,int len)
方法
写入字符串的一部分
-
File newf = File( "d:/demo.txt"); - FileWriter
writer = new FileWriter(f); - BufferedWriter
bufWriter = new BufferedWriter(writer); - bufWriter.write("hello
world" ); -
-
bufWriter.close(); -
writer.close(); -
-
FileReader reader = new FileReader(f); -
BufferedReader bufReader = new BufferedReader(reader); -
-
System.out.println(bufReader.readLine());
- PrintWriter
pw new= PrintWriter( "d:/test.txt"); - pw.println("hello
world" ); - pw.write("java");
- pw.flush();
-
- pw.close();
字节流
字符流
以字节为单位输入输出数据
以字符为单位输入输出数据
操作时不会用到缓冲区(内存)
操作时使用了缓冲区(内存)
字节流按照8位传输
字符流按照16位传输
- IO 总结 (转)
- Java IO 操作
- [转] 彼尔…
-  
- [转]QTP 个人总结 (初级)
-
- 什么是重叠IO [转]
- 总结: 数塔问题 --> dp 问题 (终…
- 转 nio netty
- Adroid Notification 总结
- perl DBI 总结
- nand flash读写 (一) (转)
- nand flash读写 (二) (转)
- nand flash读写 (三) (转)
- (转)ORACLE WITH AS 用法
- 转 牛人 java语录 (2)
- 转 牛人 java语录 (3)
- 转 牛人 java语录 (4)
- js中,参数的配置
- HTML 标签大全(转)
- html 特殊字符(转)
- Windows平台下libevent库的使用
- mysql 模糊查询
- IO 总结 (转)
- Clouda试玩
- java 中 路径的获取 (转)
- java 中的 加密
- JSP脚本和指令的使用
- jsp指令 详解
- js 获取复选框的值
- 网站流量统计 cnzz
- mysql 笔记一