
package hanqi.test;
import java.io.File;
import java.io.IOException;
public class Test02 {
public static void main(String[] args) {
//目录操作
File dir =new File("d:/test/newdir");
//判断是否存在
if(dir.exists())
{
System.out.println("目录存在");
}
else
{
System.out.println("目录不存在");
//创建新目录
//只能一次创建最底层的目录
//要求上层目录必须存在
//dir.mkdirs();
//可以同时创建多层目录
dir.mkdirs();
System.out.println("创建目录成功");
}
//目录和文件结合操作
//
String dir1="d:/test01";
String filename="test01.txt";
//File file = new File(dir1,filename);
//目录的对象
File d1=new File(dir1);
//判断目录不存在
if(!d1.exists())
{
//创建目录
d1.mkdirs();
}
File file=new File(d1,filename);
//创建文件
try{
file.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
}
package hanqi.test;
import java.io.File;
import java.io.IOException;
public class Test07 {
public static void main(String[] args) {
//io流,File类的测试
//实例化某个文件的file对象
File file = new File("d:/test.txt");
//判断目标是否存在
if (file.exists())
{
System.out.println(file.getName()+"存在");
//删除
// file.delete();
// System.out.println(file.getName()+"已删除");
//改名
//本质:把原有文件以新的文件名和路径进行复制,然后删除源文件
file.renameTo(new File("d:/test2.txt"));
//没有提供复制方法
System.out.println(file.getName()+"文件改名成功");
}
else
{
System.out.println(file.getName()+"不存在");
//创建文件
try{
file.createNewFile();
System.out.println("创建"+file.getAbsolutePath());
}
catch(IOException e){
e.printStackTrace();
}
}
}
}
package hanqi.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Test03 {
public static void main(String[] args){
//字节流
//输出流 从内存流向文件
try {
//构造方法确定目标文件
//如果文件不存在,自动创建该文件,但不自动创建目录
//如果目录不存在,会引发异常
//FileOutputStream out = new FileOutputStream("d:/text03.txt");
File file = new File("d:/test");
if(!file.exists())
{
file.mkdirs();
}
File file1 = new File("d:/test03.txt");
FileOutputStream out = new FileOutputStream(file1);
//写入的内容
String nr="今天是星期一";
//把数据转成byte数组
byte[] b=nr.getBytes();
//写入数据到文件中
//byte[]内容数组
//思考题:把输出流的写入方式由覆盖改为追加
out.write(b);
out.close(); //关闭流 ,释放资源
System.out.println("输出流写入文件成功");
//输入流 从文件吧数据读入内存
FileInputStream in =new FileInputStream("d:/test/test03.txt");
//装在数据的数组
byte[] b1= new byte[1024];
int i=0;
String str="";
// 读取数据
//分段按顺序读取,每次最多读取数组长度大小的数据
//返回值表示每次读取的数据长度,如果数据读取完或读取失败,返回-1.
while((i = in.read(b1))>0)
{
//组合数据
//参数 1 - 起始位置
str += new String(b1,0,i);
}
int j=in.read(b);
System.out.println(j);
System.out.println(str);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package hanqi.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Test04 {
public static void main(String[] args){
//追加
//1、先读取源文件内容
//输入流
//如果文件不存在,抛出异常
try {
FileInputStream in = new FileInputStream("d:/test/test03.txt");
//byte[]
byte[] b= new byte[1024];
//长度
int i = -1;
//内容
StringBuilder str= new StringBuilder();
while((i=in.read(b))>0)
{
//组装数据
str.append(new String(b,0,i));
}
System.out.println(str);
//2、把新内容追加到后面
str.append("
这是追加的内容");
//3、把新内容覆盖源文件
//输出流
FileOutputStream out = new FileOutputStream("d:/test/test03.txt");
//写入数据
out.write(str.toString().getBytes());
//释放资源
out.close();
System.out.println("追加完成");
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
package hanqi.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test05 {
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
FileOutputStream out = new FileOutputStream("d:/test/test03.txt",true);
String str ="
新的构造方法";
//写入数据
out.write(str.toString().getBytes());
//释放资源
out.close();
System.out.println("追加完成");
FileInputStream in = new FileInputStream("d:/test/test03.txt");
//byte[]
byte[] b= new byte[1024];
//长度
int i = -1;
//内容
StringBuilder str1= new StringBuilder();
while((i=in.read(b))>0)
{
//组装数据
str1.append(new String(b,0,i));
}
System.out.println(str1);
}
}