JAVA IO流——字节流

类型分类

        字节输入流:用来读数据

        字节输出流:用来写数据

File类

        常用方法

         createNewFile():当文件不存在时,创建一个由该路径名命名的新文件,返回布尔型

                File file = new File("E:\\Java\\Demo\\createNewFile.txt");
                boolean newFile = file.createNewFile();//此处会由异常,可以用throws抛出
                System.out.println(newFile);

        mkdir():创建单级目录,返回布尔型

                File file = new File("E:\\Java\\Demo\\mkdir");
                boolean mkdir = file.mkdir();
                System.out.println(mkdir);

        mkdirs():创建多级目录,返回布尔型

                File file = new File("E:\\Java\\Demo1\\mkdirs1");
                boolean mkdirs = file.mkdirs();
                System.out.println(mkdirs);

        isDirectory():测试是否为目录

        isFile():测试是否为文件

        exists():测试File是否存在

        getAbsolutePath():返回绝对路径字符串

        getPath();将抽象路径名转换为路径名字符串

        getName():获取文件或者目录名

        delete():删除文件或者目录

字节流写数据

        InputStream:输入流的超类

        OutputStream:输出流的超类

      FileOutputStream   代码示例——写数据:(异常还可用throws抛出)

FileOutputStream fileOS = null;
try {
    fileOS = new FileOutputStream("test.txt", true);//后面的true是判断是否接着在后面添加
    fileOS.write(97);//写入的是一个a
    fileOS.write(98);//写入的是一个b
    fileOS.write("\r\n".getBytes());//换行
    fileOS.write("二哈".getBytes());//写入汉字
    fileOS.write("\r\n".getBytes());
} catch (IOException ioException) {
    ioException.printStackTrace();
} finally {
    if (fileOS != null) {
        try {
            fileOS.close();
        }catch (IOException ioException){
            ioException.printStackTrace();
        }
    }
}

      FileInputStream   代码示例——读数据(异常参考写数据)

FileInputStream fi = new FileInputStream("test.txt");
byte[]fiArr=new byte[1024];
int len;
while ((len=fi.read(fiArr))!=-1){
    System.out.println(new String(fiArr,0,len));
}
fi.close();

如何复制某个文件中的内容写入另外一个文件

代码示例:

public class Main {

        public static void main(String[] args) throws IOException {
        File fileOutput = new File("IOTest.txt");//写入地址
        File fileInput = new File("test.txt");//复制地址
        if(!fileOutput.isFile()){
            fileOutput.createNewFile();
            copyData(fileInput,fileOutput);
        }
        else {
            copyData(fileInput,fileOutput);
        }
    }
    public static void copyData(File fileInput,File fileOutput) throws IOException{
        FileInputStream fileIS = new FileInputStream(fileInput);
        FileOutputStream fileOS = new FileOutputStream(fileOutput);
        byte[] bytes=new byte[1024];
        int len;
        while ((len= fileIS.read(bytes))!=-1){
            fileOS.write(bytes,0, len);
        }
        fileIS.close();
        fileOS.close();
    }

字节缓冲输入输出流:能够使效率更快

字节缓冲输出流代码示例

BufferedInputStream bis=new BufferedInputStream(new FileInputStream("IOTest.txt"));
byte[]a=new byte[1024];
int len;
while ((len= bis.read(a))!=-1){
    System.out.println(new String(a,0,len));//获取数组a的0到len的数据
}

字节缓冲输入流代码示例:

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("IOTest.txt"));
for(int i=0;i<5;i++){
    bos.write("java".getBytes());
    bos.write("\r\n".getBytes());//换行
}
bos.close();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值