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

javaio文件操作

2017-04-17 08:18 369 查看
创建文件和删除文件

File.separator代替'/'实现路径分割

package no4;
import java.io.File;
import java.io.IOException;

public class M{
public static void main(String[] args) throws IOException{
File file = new File("C:"+ File.separator+"AAA"+File.separator+"DATA.txt");
//file.mkdirs();//这样同时也将DATA.txt设置成了目录

//这样就会先创建设置DATA.txt前成 目录,在设置DATA.txt为文件
file.getParentFile().mkdirs();
file.createNewFile();
}
}


列出指定目录下文件

package no4;
import java.io.File;
import java.io.IOException;

public class M{
public static void main(String[] args) throws IOException{
File file = new File("C:"+ File.separator+"Windows");
if(file.exists() && file.isDirectory()){ //文件存在且是文件夹
File[] r = file.listFiles();//列出指定的目录内容
for(int i=0; i<r.length; i++){
System.out.println(r[i]);
}
}
}
}

创建文件,将数据写入文件,从文件读取数据

package no4;
import java.io.*;
public class A{
public static void main(String args[])throws IOException{
/*    File file = new File("C:"+File.separator+"Hello1.txt");
// 创建文件
file.createNewFile();
FileWriter writer = new FileWriter(file);
// 向文件写入内容
writer.write("This\n is\n an\n example\n");
writer.flush();//强制将缓冲区数据发送
writer.close();
// 创建 FileReader 对象
FileReader fr = new FileReader(file);
char [] a = new char[50];
fr.read(a); // 读取数组中的内容
for(char c : a)
System.out.print(c); // 一个一个打印字符
fr.close();*/
File file = new File("C:"+File.separator+"Hello.txt");
//创建Hello文件
file.createNewFile();

//向文件中写入数据
FileWriter writer = new FileWriter(file);
writer.write("hahahaha\nxixixi");
writer.flush();//强制将缓冲区数据发送
writer.close();

//从文件中读取
FileReader reader = new FileReader(file);
char[] ch  = new char[100];
reader.read(ch);
for (char c : ch){
System.out.print(c);
}
reader.close();
}
}

递归输出指定文件对象的目录文件名

package no4;

import java.io.*;

public class Aa {

public static void main(String[] args) {
// TODO 自动生成的方法存根
File file = new File("C://Windows");
print(file);
}
public static void print(File file){
if (file != null){
if (file.isDirectory()){//当前file是目录
System.out.println(file);//打印出目录
File file1[]=file.listFiles();//存放目录列表
if (file1 != null){
for (int i=0; i<file1.length; i++){//遍历每个列表项
print(file1[i]);//递归调用
}
}
}
else{//是文件直接打印
System.out.println(file);
}
}

}
}


InputStream字节输入流

import java.io.*;

import javax.imageio.stream.FileImageInputStream;

public class A {

public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
File file = new File("c://测试.txt");
//InputStream 所有字节流输出的父类
//FileInputStream 从文件系统中的某个文件中获得输入字节是InputStream的子类
InputStream in = new FileInputStream(file);
int flen = (int)file.length();//向下转型
byte[] b = new byte[flen];
in.read(b);//  从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
in.close();
System.out.println("读取到了:"+new String(b));
}

}


OutputStream字节输出流

import java.io.*;

import javax.imageio.stream.FileImageInputStream;

public class A {

public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
File file = new File("c://测试.txt");
OutputStream out = new FileOutputStream(file);//添加rue,文件会追加
String str = "hahahahahha aa";
byte[] b = str.getBytes();
out.write(b);
out.close();
}

}


复制一份文件
package no1;

import java.io.*;

import javax.imageio.stream.FileImageInputStream;

public class A {

public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//f1();非缓冲方式,耗时
//f2();缓冲方式,较快
}
/*
* 非缓冲方式,耗时
*/
public static void f1() throws IOException{
File file = new File("c://测试.txt");
InputStream in= new FileInputStream(file);
OutputStream out = new FileOutputStream("c://复制的测试文件.txt");
int b=0;
while ((b=in.read())!=-1){//b获取内容
out.write(b);
}
in.close();
out.close();
}
/*
* 缓冲方式,较快
*/
public static void f2() throws IOException{
BufferedInputStream in = new BufferedInputStream(new FileInputStream("c://测试.txt"));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("c://复制的测试文件2.txt"));
int b=0;
while ((b=in.read())!=-1){//b获取内容
out.write(b);
}
in.close();
out.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: