下面是文件File的简单使用
直接上代码

/**
 * @ClassName FileTest
 * @Author 莫邪
 * @Description TODO
 * @Date Created in 23:10 2018/7/8
 * @Version 1.0
 */
import java.io.File;
import java.io.IOException;
import java.net.URL;

public class FileTest {
    public static void main(String[] args) throws IOException {

        //在tomcat中,在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin
        String projectPath = System.getProperty("user.dir");//得到工程的路径
        //获取当前类的绝对路径
        String classPath =FileTest.class.getResource("/").getPath();
        String classPath1 =FileTest.class.getResource("").getPath();

        System.out.println("工程的绝对路径:"+projectPath);
        System.out.println("当前的classpath路径:"+classPath);
        System.out.println("得到的是当前类FileTest.class文件的URI目录。不包括自己:"+classPath1);
        File file = new File("text.txt");
        //System.out.println("获取标准路径"+file.getCanonicalPath());
        System.out.println("获取绝对路径"+file.getAbsolutePath());
        if(!file.exists()){
            file.createNewFile();//判断文件是否存在,不存在,创建文件
        }
        System.out.println("文件的大小"+file.length());
        System.out.println("创建文件时的path"+file.getPath());
        System.out.println("文件的名字"+file.getName());




    }

}

java InputStream 获取文件目录 inputstream获取路径_java


下面是关于输入输出流的简单使用

上代码解释,不罗嗦

package io.study;/**
 * @ClassName StreamTest
 * @Author 莫邪
 * @Description TODO io的基本操作
 * @Date Created in 23:28 2018/7/8
 * @Version 1.0
 */

import java.io.*;

/**
 * @ClassName StreamTest
 * @Author 莫邪
 * @Description TODO
 * @Date Created in 23:28 2018/7/8
 * @Version 1.0
 */
public class StreamTest {

    public static void main(String[] args) throws IOException {
        //使用输入流的时候必须确保文件是存在的,不然会报异常,报文件找不到的异常
        //可以在BufferedInputStream中组合使用流,这里使用BufferedInputStream的效率会比普通的InputStream高,因为BufferedInputStream
        //中有缓冲区,可以加快文件的读写,以InputStream或者是OutputStream结尾的类操作的是字节流(二进制流)
        InputStream inputStream = new BufferedInputStream(new FileInputStream(new File("in.txt")));
        //这里使用输出流的文件可以不确保文件存在,如果不存在将会自动创建
        OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(new File("out.txt")));
        //OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(new File("out.txt"),true));文件的追加操作

        //判断当前的流是否支持重复读的操作,inputStream是不可以重复读,读完一次之后处了特殊的复位操作不能
        //再重新读一遍流,默认inputstraem是不支持的,但是BufferedInputStream支持
        if (inputStream.markSupported()) {
            //标记当前流中的位置,往后的1024个字节可以支持重复读,
            // 如果多余1024个字节使用reset重置指针Dao标记的位置时会报错
            inputStream.mark(1024);
        }

        //下面进行文件的读取和复制的操作
        //创建一个存储数据的byte数组
        System.out.println("当前文件的还剩的可读的字节数大小" + inputStream.available());
        byte[] data = new byte[1024];
        //当read()返回结果为-1的时候代表文件已经读到的结尾
        //否则返回当前返回读到的字节数的大小
        int len;
        while ((len = inputStream.read(data)) != -1) {
            System.out.println("当前读到的数据长度:" + len);
            outputStream.write(data, 0, len);//确定len是为了提高效率
        }
        System.out.println("复位前当前文件的还剩的可读的字节数大小" + inputStream.available());
        inputStream.reset();//确保已经读取的数据没有超过inputStream.mark(1024)设置的值
        System.out.println("复位后当前文件的还剩的可读的字节数大小" + inputStream.available());
        while ((len = inputStream.read(data)) != -1) {
            System.out.println("当前读到的数据长度:" + len);
            outputStream.write(data, 0, len);//确定len是为了提高效率
        }

        //流使用完毕后应该将其关闭

        outputStream.flush();//养成好习惯,将数据flush到文件中,确保文件成功写入了数据
        outputStream.close();
        inputStream.close();
    }

}

java InputStream 获取文件目录 inputstream获取路径_java_02