Java文件操作(完善)

import java.io.FileOutputStream;
import java.io.*;
import java.util.*;
 
public class FileOpreat {
 
    public static void main(String[] args) throws Exception {
 
        // 覆盖的方式写数据
        FileOutputStream fos = new FileOutputStream(
                "D:/FileOpreat/abc.txt");
 
        String s = "老年你好";
        byte[] bytes = s.getBytes();
        fos.write(bytes);
        // 将字符串按指定编码集编码--》将信息转成二进制数 fos.write(bytes); // 这样写入的数据,会将文件中的原数据覆盖
 
        // 追加的方式写数据:如果要往一个文件中追加数据,则在FileOutputStream的构造参数中多传一个true
        FileOutputStream fos2 = new FileOutputStream(
                "D:/FileOpreat/abc.txt",true);
        fos2.write("年年有余".getBytes());//安全的加密方式
        fos2.close();
 
        /**
         * 第一句和后两句话写到文件中的数据完全相同
         */
        //fos.write("我用一生一世为你祈祷".getBytes()); // .getBytes()编码的过程
        //fos.write((byte) 49);
        //fos.write((byte) 51);
 
        /**
         * 这两句话写到文件中的数据完全相同
         */
        // fos.write((byte)13);
        // fos.write("\r".getBytes());
 
        fos.close();

		System.out.println("新文件夹创建");
		creatfile();
		System.out.println("新文件txt创建");
		try{
			creatfilejack();
		}
		catch(Exception e){
			System.out.println("异常");
		}
 
    }

	public static void creatfile(){
		File newfile=new File("D:/HELLO");
		if(!newfile.exists()){
			newfile.mkdirs();
		}
		//文件删除
		//newfile.delete();
	}
	public static void creatfilejack()throws Exception{
		String path="D:/HELLO/hello.txt";
		File file=new File(path);
		if(!file.exists()){
		file.createNewFile();//必须调用异常抛出
		}
		//文件删除
		//file.delete();
		//文件写入--覆盖流
		String s="I am a good student!";
		byte[]content=s.getBytes();
		FileOutputStream in=new FileOutputStream(file);
		in.write(content);
		in.close();
		//文件写入--紧接流
		String s2="I will success!";
		FileWriter in2=new FileWriter(file,true);in2.write(s2);//注意此处输入的是St
		ring类型,不是byte;
		in2.close();
		//文件打印流(写入文件)
		//和紧接流一个性质,可写入字符串(由于参数是FileWriter类的)
		PrintWriter printer=new PrintWriter(new FileWriter(file,true));
		printer.println(s);//换行输入
		printer.print(s);  //非换行输入
		printer.close();
		//读文件--字节流(以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件)
		InputStream out = new FileInputStream(file);
		//一次读一个字节
		int com;
		while((com=out.read())!=-1){
			System.out.write(com);
		}
		out.close();
		//一次读多个字符
		/*int byteread = 0;
		byte[] tempbytes = new byte[100];
		FileOpreat.showAvailableBytes(out);
		while ((byteread = out.read(tempbytes)) != -1) {  
		System.out.write(tempbytes, 0, byteread);  
	} 
	}
		public static void showAvailableBytes(InputStream in){
			try{
				System.out.println("当前字节输入流字节数为:"+in.available());
			}
			catch(IOException e){
				e.printStackTrace();
			}
		}*/
}

///////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.*;//导入所需的包
public class IOTest {//类
	public static void main(String[] args){//主程序,程序入口
		File file=new File("C:/safety/user_data2");
		if(!file.exists()){//如果文件夹不存在
			file.mkdir();//创建文件夹
		}
		try{//异常处理
			//如果Qiju_Li文件夹下没有Qiju_Li.txt就会创建该文件
			BufferedWriter bw=new BufferedWriter(new FileWriter("C:/safety/user_data2/data1.txt"));
			bw.write("Hello I/O!");//在创建好的文件中写入"Hello I/O"
			bw.close();//一定要关闭文件
		}catch(IOException e){
			e.printStackTrace();
		}
	}
public static boolean addFile(String string,String path) {//覆盖写入

   PrintStream stream=null;
    try {

        stream=new PrintStream(path);//写入的文件path
        stream.print(string);//写入的字符串
        return true;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    return false;
}

public static boolean addFile(String string,String path) {//续写

    //文件的续写
    FileWriter fw = null;
    try {
        fw = new FileWriter(path,true);
        //写入换行
        fw.write("\r\n");//Windows平台下用\r\n,Linux/Unix平台下用\n
        //续写一个hello world!
        fw.write(string);
        fw.close();
        return true;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

public class ReadTxtFile {
  
  
public static void readTxt(String filePath) {//获取文件中的内容
  
  try {
    File file = new File(filePath);
    if(file.isFile() && file.exists()) {
      InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
      BufferedReader br = new BufferedReader(isr);
      String lineTxt = null;
      while ((lineTxt = br.readLine()) != null) {
        System.out.println(lineTxt);
      }
      br.close();
    } else {
      System.out.println("文件不存在!");
    }
  } catch (Exception e) {
    System.out.println("文件读取错误!");
  }
  
  }
  
  
  public static void main(String[] args) {
    String filePath = "D:\\test\\我.txt";
    readTxt(filePath);
  }

  File[] list = file.listFiles();//list获取的结果:[D:\qrcodeFile\20190116, D:\qrcodeFile\20190117]//文件遍历
				if (list.length == 0) {
					System.out.println(file.getAbsolutePath() + " is null");
				} else {
					for (int i = 0; i < list.length; i++) {
						isDirectory(list[i]);
					}
				}
  
}

posted @ 2019-12-10 15:40  东辰弈  阅读(147)  评论(0)    收藏  举报