zoukankan      html  css  js  c++  java
  • java对文件的基本操作

    package cn.edu.fhj.day009.FileDemo;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo {
    
    	public static void main(String[] args) throws IOException {
    
    		// 将路径描述成File对象
    		// File file = new File("d:/java_fd_test/fileDemo.txt");
    		File file = new File(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm");
    		boolean exists = file.exists(); //  如果路径所表示的文件或者文件夹存在,则返回true
    		System.out.println(exists);
    
    		// 判断该file是文件夹还是文件
    		boolean directory = file.isDirectory();
    		System.out.println(directory); // true
    
    		boolean ifFile = file.isFile();
    		System.out.println(ifFile); // false
    
    		// 获取文件的绝对路径
    		String absolutePath = file.getAbsolutePath();
    		System.out.println(absolutePath);
    
    		// 可以获取文件名或文件夹名
    		String name2 = file.getName();
    		System.out.println(name2);
    
    		File file2 = new File(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/Demo.txt");
    		ifFile = file2.isFile(); // true
    		System.out.println(ifFile);
    
    		// 获取文件名
    		String name = file2.getName();
    		System.out.println(name);
    
    		// 获取上一级目录的file对象
    		File parentFile = file2.getParentFile();
    		System.out.println(parentFile.getAbsolutePath());
    
    		// 获取上一级目录的路径字符串
    		String parent = file2.getParent();
    		System.out.println(parent);
    
    		// 获取文件长度 字节(8个bit-- 二进制位)
    		long length = file2.length();
    		System.out.println(length);
    
    		System.out.println("------------------------");
    
    		// 获取指定目录下的子节点的名称字符串
    		String[] list = file.list();
    		for (String s : list) {
    			System.out.println(s);
    		}
    
    		System.out.println("------------------------");
    
    		// 获取指定目录下的子节点的File描述对象
    		File[] listFiles = file.listFiles();
    		for (File f : listFiles) {
    			System.out.println(f.getAbsolutePath());
    		}
    
    		System.out.println("------------------------");
    
    		// 创建一个文件夹
    		File f = new File(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz");
    		// boolean mkdir = f.mkdir(); // 不能创建多级目录
    		// System.out.println(mkdir);
    
    		// boolean mkdirs = f.mkdirs(); // 可以创建多级目录
    		// System.out.println(mkdirs);
    		//
    		// // 创建文件
    		File file3 = new File(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz/cls.txt");
    		boolean createNewFile = file3.createNewFile();
    		System.out.println(createNewFile);
    
    		// 重命名文件:其实可以把路径都给改了
    		file3.renameTo(new File(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz/cls001.txt"));
    
    		// 删除文件
    		boolean delete = file3.delete();
    		System.out.println(delete);
    
    	}
    
    }
    

      

    FileOutputStreamDemo文件的写

    package cn.edu.fhj.day009.FileDemo;
    
    import java.io.FileOutputStream;
    
    public class FileOutputStreamDemo {
    
    	public static void main(String[] args) throws Exception {
    
    		// 覆盖的方式写数据
    		FileOutputStream fos = new FileOutputStream(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/Demo.txt");
    
    		String s = "a你好";
    		byte[] bytes = s.getBytes();
    		fos.write(bytes);
    		// 将字符串按指定编码集编码--》将信息转成二进制数 fos.write(bytes); // 这样写入的数据,会将文件中的原数据覆盖
    
    		// 追加的方式写数据:如果要往一个文件中追加数据,则在FileOutputStream的构造参数中多传一个true
    		FileOutputStream fos2 = new FileOutputStream(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/Demo.txt",
    				true);
    		fos2.write(",sb".getBytes("UTF-8"));
    		fos2.close();
    
    		/**
    		 * 第一句和后两句话写到文件中的数据完全相同
    		 */
    		fos.write("我用一生一世为你祈祷".getBytes()); // .getBytes()编码的过程
    		fos.write((byte) 49);
    		fos.write((byte) 51);
    
    		/**
    		 * 这两句话写到文件中的数据完全相同
    		 */
    		// fos.write((byte)13);
    		// fos.write("
    ".getBytes());
    
    		fos.close();
    
    	}
    }
    

      

    FileInputStreamDemo的读

    package cn.edu.fhj.day009.FileDemo;
    
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    public class FileInputStreamDemo {
    
    	public static void main(String[] args) throws Exception {
    
    		// 要读文件,首先要构造一个FileInputStream对象
    		InputStream fis = new FileInputStream(
    				"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/Demo.txt");
    
    		/**
    		 * 把数从文件中读取出来 如何读取字符
    		 */
    		// FileInputStream是一种字节流,是按照一个一个字节去文件中取数据的
    		// 手动一个字节一个字节地读取
    		/*
    		 * int read = fis.read();
    		 * 
    		 * System.out.println(read);
    		 * 
    		 * read = fis.read(); System.out.println(read);
    		 */
    
    		/**
    		 * 利用fis读到文件末尾后会返回-1的特性,来用循环进行读取
    		 */
    		int read = 0;
    		/*
    		 * while((read=fis.read())!=-1) { System.out.println(read); }
    		 */
    
    		System.out.println("-------------------");
    		/**
    		 * 如果我要读出数据(文本文件中的数据其实就是字符) 过程是:还是先读数,然后按照码表,将这个数转成字符
    		 * 
    		 */
    		/*
    		 * read = 0; while((read=fis.read())!=-1) { //
    		 * char就代表一个英文字符,而且使用的是ascII码表规则 char c = (char)read;
    		 * System.out.println(c); }
    		 */
    
    		/**
    		 * 一次读取多个字节然后转成某种数据类型 read(buf)方法,一次读取buf长度个字节数据,并且读到的数据直接填入了buf数组中
    		 */
    		/*
    		 * byte[] buf = new byte[8]; int num = fis.read(buf); // 返回的是真实读到的字节数量
    		 * String string = new String(buf,2,5); // 利用二进制的byte数组来转成字符串
    		 * System.out.println(string);
    		 */
    
    		/**
    		 * 用while循环来反复读取
    		 */
    		int num = 0;
    		byte[] buf = new byte[8];
    		while ((num = fis.read(buf)) != -1) {
    			System.out.println(new String(buf, 0, num));
    		}
    
    		// 关流
    		fis.close();
    	}
    
    }
    

      

  • 相关阅读:
    每日作业报告之《大道至简》读后感
    Java学习的第二十六天
    Java学习的第二十五天
    封装按钮组件
    回车导致地址栏出现?
    判断用户输入值的是不是整数
    String类型在JVM中的内存分配
    MySQL索引的原理及使用
    ICPC Yokohama, 2018(Domestic)C. Skyscraper “MinatoHarukas ” (暴力)
    CH6803 导弹发射塔(二分图最大匹配/多重匹配)
  • 原文地址:https://www.cnblogs.com/cerofang/p/10273159.html
Copyright © 2011-2022 走看看