java基础-文件操作

创建多级目录下的一个文件

public class FileDemo3 {
	public static void main(String[] args) throws IOException{		
		File file = new File(
				"a"+File.separator+
				"b"+File.separator+
				"c"+File.separator+
				"d"+File.separator+
				"e"+File.separator+
				"f"+File.separator+
				"g"+File.separator+
				"h.txt"
				);
		/*
		 * 创建文件时,应首先判断当前文件所在的
		 * 目录是否存在,因为若不存在,会抛出
		 * 异常的。
		 */
		/*
		 * File getParentFile()
		 * 获取当前文件或目录所在的父目录
		 */
		File parent = file.getParentFile();
		if(!parent.exists()){
			parent.mkdirs();
		}
		if(!file.exists()){
			file.createNewFile();
			System.out.println("文件创建完毕");
		}
		
	}
}


使用字符流复制文本文件


public class CopyDemo {
	public static void main(String[] args) throws IOException{
		FileInputStream fis
			= new FileInputStream(
					"./src/day03/CopyDemo.java");
		
		FileOutputStream fos
			= new FileOutputStream(
					"CopyDemo.java");
		
		InputStreamReader isr
			= new InputStreamReader(fis);
		
		OutputStreamWriter osw
			= new OutputStreamWriter(fos);
		
		int d = -1;
		while((d=isr.read())!=-1){
			osw.write(d);
		}
		
		System.out.println("拷贝完毕");
		isr.close();
		osw.close();
	}
}


一行一行读取文件

* PrintWriter
 * 缓冲字符输出流,带有自动行刷新
 * 可以以行为单位写出字符串


public class PrintWriterDemo {
	public static void main(String[] args) throws IOException{
		FileOutputStream fos
			= new FileOutputStream("pw.txt");
		
		OutputStreamWriter osw
			=	new OutputStreamWriter(
													fos,"UTF-8");
		/*
		 * 创建具有自动航刷新的PrintWriter
		 * 后,每当我们使用println方法写出
		 * 字符串后,都会自动flush
		 * 但一定要清楚:这无疑会增加写出次数
		 *             而降低写出效率
		 */
		PrintWriter pw
			= new PrintWriter(osw,true);
		
		pw.println("我爱北京天安门");
		
		pw.println("快使用双节棍");

		pw.close();
	}
}

一行一行写入文件

* BufferedReader
 * 缓冲字符输入流
 * 可以以行为单位读取字符串


public class BufferReaderDemo {
	public static void main(String[] args) throws IOException{
		FileInputStream fis
			= new FileInputStream("pw.txt");		
		InputStreamReader isr
			= new InputStreamReader(
												fis,"UTF-8");		
		BufferedReader br
			= new BufferedReader(isr);
		/*
		 * String readLine()
		 * 一次读取一行字符串,该方法会判断
		 * 读取到换行符为止,将之前的一行
		 * 字符串返回
		 * 若该方法返回的字符串为null,说明
		 * 没有数据可读了。
		 */
		String str = null;
		while((str=br.readLine())!=null){
			System.out.println(str);
		}
		br.close();
	}
}






猜你喜欢

转载自blog.csdn.net/jk823394954/article/details/78906667