手记

二、javase基础知识总结(从文件 I/O开始)

33、Java I/O输入输出流

一、主要学习的知识点
    1、解决编码问题
    2、File类的使用
    3、RandomAcessFile的使用
    4、字节流的使用
    5、字符流的使用
    6、对象的序列化和反序列化

34、编码问题

1、把字符串用项目的默认编码输出   s.getByte();
        String s ="慕课网IM";
        byte[] byte1 = s.getBytes();//把字符串转换成字节序列,用的是项目的默认编码GBK
        for(byte b: byte1){
            //把字节数组转化成int以16进制输出
            System.out.print(Integer.toHexString(b & 0xff )+",");
           //& 0xff是为了把前面的24个0去掉只留下后八位
        }
2、把字符串以指定的编码方式输出  s.geBytes("GBK");
    String s ="慕课网IM";
    System.out.println("GBK编码后的16进制");
        byte[] byte2 = s.getBytes("gbk");
        //gbk编码:中文占用2个字节,英文占用1个字节
        for(byte b: byte2){
            System.out.print(Integer.toHexString(b & 0xff )+",");
        }
3、字节编码总结

    gbk编码: 中文占用两个字节,英文占用一个字节
    utf-8编码:中文占用三个字节,英文占用一个字节
    java是双字节编码,是utf-16be编码
    utf-16be编码:中文占用两个字节,英文占用两个字节

另外:文本文件就是字节序列,可以是任意编码的字节序列

35、当你希望用某种编码方式来输出而又不出现乱码的方式

/**
         *当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
         */
        System.out.println();
        byte[] byte5 = s.getBytes("UTF-8");
        String str1 = new String(byte5,"utf-8");
        System.out.println("以utf-8的编码方式来输出"+str1);

36、File类的常用API

Java.io.File类表示文件或目录,只用于表示文件或目录的信息,不能用于文件的访问。

常用的API:
1、创建File对象:File file = new File(String path); 注意:File.seperater();获取系统分隔符,如:"\"
2、boolean file.exists();判断文件是否存在
3、file.mkdir();或者。file.mkdirs;创建目录或多级目录
4、file.isDirectory();或者file.isFile();判断是否是目录,或者是否是文件。
5、file.delete();//删除文件或目录
6、file.createNewFile();//创建新文件
7、file.getName();//获取文件名称或目录的绝对路径
8、file.getAbsolutePath();//获取绝对路径
9、file.getParent();//获取父级绝对路径
10、file.getSize();//获取文件大小
11、file.getFormat();//获取文件格式

参考代码

package com.leeue.file;

import java.io.File;
import java.io.IOException;

/**
 * 
 * 功能:这里列出File文件类的所有的API
 * @author:李月
 * @Version:
 * @Date 2017年11月11日 下午3:57:08
 */
public class FileAPI {

    /**
     * 了解File类的构造函数
     */
    public void testConstructor(){
        /*
         * 第一种构造函数
         */
        File file = new File("F:\\javaio");//这里注意把"\"变成"\\"
        File file1 = new File("F:"+File.separator);//使用 File.sepearator 这个来设置斜杠 \
        System.out.println(file.exists());// --- true
        if(file.exists()){
            System.out.println("这个目录存在,正在删除这个目录");
            file.delete();//删除这个目录
        }else{
            System.out.println("这个目录不存在,开始创建这个目录");
            file.mkdir();//创建目录,根据file的路径
        }
        //判断是否是一个目录
        System.out.println("是否是目录 "+file.isDirectory());
        //判断是否是文件
        System.out.println("是否是文件"+file.isFile());
        /**
         * 直接创建文件对象
         */
        //File file2 = new File("F:\\javaio\\文件.txt");
        File file2 = new File("F:\\javaio","文件.txt");//第二种文件创建方式
        if(file2.exists()){//如果这个文件存在就会删除这个文件
            System.out.println("文件存在,正在删除这个文件");
            file2.delete();//删除这个文件
        }else{
            try {
                System.out.println("文件不存在,正在创建文件");
                file2.createNewFile();//如果这个文件不存在就创建这个文件
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        //常用的file对象API
        System.out.println(file);//直接打印file,是打印file的路径  file.toString();内容 
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getName());
    }
    /**
     * 
     * @param args
     */
    public static void main(String[] args) {
        //
        FileAPI fa = new FileAPI();
        fa.testConstructor();

    }
}

0人推荐
随时随地看视频
慕课网APP