Java基础,输入输出


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);
    }

}
原文地址:https://www.cnblogs.com/zs6666/p/5912058.html