java基础——IO流(慕课网)

1、文件的编码

public class EncodeDemo{

  String s = "慕课ABC";

  byte[] bytes1 = s.getBytes();  //字符串转换成byte数组

  for(byte b : bytes1){

    //把字节(转换成了int)以16进制的方式显示

    System.out.println(Integer.toHexString(b & 0xff)+" ");  //前24个0没用,只留下后八位 

    }

  byte[] bytes2 = s.getBytes("gbk");

  for(byte b : bytes2){

    //gbk编码中文占用两个字节,英文占用一个字节

    System.out.println(Integer.toHexString(b & 0xff)+" ");   

    }

  byte[] bytes3 = s.getBytes("utf-8");

  for(byte b : bytes3){

    //utf-8编码中文占用三个字节,英文占用一个字节

    System.out.println(Integer.toHexString(b & 0xff)+" ");   

    }

  

  //java是双字节编码utf-16be

  byte[] bytes4 = s.getBytes("utf-16be");

  for(byte b : bytes4){

    //utf-16be编码中文占用两个字节,英文占用两个字节

    System.out.println(Integer.toHexString(b & 0xff)+" ");   

    }

  //当你的字节序列某种编码时,这个时候想把字节序列变成字符串,也需要这种编码方式,否则会出现乱码

  String str1 = new String(bytes4);  //用项目默认编码

  System.out.println(str1);  //出现乱码

  String str2 = new String(bytes4,"utf-16be");  //括号中要的字节数组,要和编码一致

  System.out.println(str2;  //正常显示

  // 文本文件 就是字节序列,

  //可以是任意编码的字节序列,

  //如果我们在中文机器上直接创建文本文件,那么该文本文件 只认识 ANSI编码,直接粘贴过来的可以认识

  //但是文本文件本身是可以放置任何编码的文件的

}

  结果显示:

      c4 bd   bf ce   41 42 43

    // 慕       课    A    B  C  中文两个字节,英文一个字节 

2、File类的使用

  java.io.File类用于表示文件(目录)

  File类智能表示文件(目录)的信息(名称,大小等)不能用于文件内容的访问

  File基本API的操作

public class FileDemo{

  public static void main(String[] args){

    File file  = new File("e:\javaio");

   // File file1 = new File("e:"+File.separator);

    System.out.println(file.exists);  //判断文件目录存不存在

    if(!file.exists()){

      file.mkdir();  //  创建一级目录(下面没有别的目录了)

      file.mkdirs();  //  创建多级目录(下面还有有别的目录了)

    }else{

      file.delete();   //删除目录

    }

    //是否是一个目录

    System.out.println(file.isDirectory());

    //是否是一个文件

    System.out.println(file.isFile());

    File file2 = new File("e:"+File.separator + "新建.txt");

    //File file2 = new File("e:","新建.txt");  //和上面的一样

    //判断文件是否存在

    if(!file2.exits())

      file2.createNewFile();  //如果不存在可以这样直接创建,会有异常产生

  

    //常用File对象的API

    System.out.println(file);  //打印的是file的目录,相当于file.toString();

    System.out.println(file.getAbsolutePath());  //获取file的抽象路径

    System.out.println(file.getName);  //如果是文件打印的是文件名,如果是目录打印的是目录最后的名字

    //得到父目录, file.getParent();返回的是String;

    //String [] strs = new File().list();  //list()方法当用户列出当前目录下的子目录和文件,返回的是字符串数组,直接子的名称,不包含子目录下的内容

    //File[]  files = new File().listFiles();  //返回的是直接子目录(文件)的抽象

  }

}

    

原文地址:https://www.cnblogs.com/0914lx/p/6474019.html