java读写磁盘文件

参考:
https://blog.csdn.net/qq_30141957/article/details/80049128

https://blog.csdn.net/liuhenghui5201/article/details/8279557

https://blog.csdn.net/lykangjia/article/details/70159619

https://blog.csdn.net/Chianz632/article/details/79946851

https://www.runoob.com/java/java-files-io.html

https://www.cnblogs.com/lianghui66/p/3303546.html

一、java的IO流

java中的IO流可分为字节流和字符流。其中有4个文件流,4个缓冲流,2个转换流,2个打印流,2个序列化流,2个数据流。

文件流

FileInputStream            //字节输入流
FileOutPutStream           //字节输出流
FileReader                 //字符输入流
FileWriter                 //字符输出流

缓冲流

BufferedInputStream        //字节输入缓冲流
BufferedOutputStream       //字节输出缓冲流
BufferedReader             //字符输入缓冲流
BufferedWriter             //字符输出缓冲流

BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,

从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。

BufferedWriter 由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,

将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

序列化流

ObjectInputStream          
ObjectOutputStream

转换流(字符流)将字节流转换为字符流

InputStreamReader
OutputStreamWriter

数据流

DataInputStream
DataOutputStream

打印流

PrintWriter
PrintStream

二、使用示例

1、使用FileWriter和BufferedWriter写入字符串到磁盘中

	/**
	 * 写入磁盘,并保存在磁盘中
	 */
	public static void writeToFile() {
		String content = "测试写入文件";
		File file = new File("H:\\workplaces\\eclipse_programs\\DataStructures\\testWrite.txt");
		try {
			//创建字符输出流类对象和已存在的文件相关联;文件不存在的话,并创建;true表示从结尾续写,false表示覆盖重写
			FileWriter fw = new FileWriter(file,false);
			BufferedWriter bw = new BufferedWriter(fw);
			//写入字符串内容
			bw.write(content);
			//关闭流
			bw.close();
			fw.close();
			System.out.println("测试写入成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

2、使用FileInputStream、InputStreamReader、BufferedReader从磁盘文件中读取内容

	/**
	 * 从磁盘文件中读取内容
	 * @return
	 * @throws IOException 
	 */
	public static void readFromFile(File file) {
		if(file.isFile() && file.exists()) {
			try {
				//FileInputStream用于从文件读取数据,读取文件成字节流
				FileInputStream fs = new FileInputStream(file);
				//使用InputStream从文件里读取数据,将字节流转换为字符流.
				InputStreamReader isr = new InputStreamReader(fs);
				//从字符输入流中读取文本,缓冲各个字符
				BufferedReader br = new BufferedReader(isr);
				
				StringBuffer sb = new StringBuffer();
				String text = null;
				while((text = br.readLine()) != null) {
					//将读取到的文本存入stringbuffer中
					sb.append(text);
				}
				System.out.println("读取结果:" + sb.toString());
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

3、使用FileOutputStream 和 OutputStreamWriter写入文件

	/**
	 * 使用FileOutputStream 和 OutputStreamWriter写入文件
	 */
	public static void writeToFile2() {
		String content = "测试写入文件2";
		File file = new File("H:\\workplaces\\eclipse_programs\\DataStructures\\testWrite2.txt");
		try {
			//字节输入流
			FileOutputStream fs = new FileOutputStream(file);
			//将字节流转换为字符流
			OutputStreamWriter os = new OutputStreamWriter(fs);
			os.write(content);
			os.close();
			fs.close();
			System.out.println("成功写入文件2");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

猜你喜欢

转载自www.cnblogs.com/flypig666/p/13379832.html