Java中IO的简单举例
package com.kale.io; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * @author:Jack Tony * @date :2014-10-12 */ public class IOTest { public static void main(String[] args) { //String str = byteRead(); //byteWrite(str); //String readStr = fileReader(); //fileWriter(readStr); //readerWriter(); //bufferedReader(); } /** * 字节流写入 * @param result */ public static void byteWrite(String result) { FileOutputStream fos = null; try { //将字符串写入到硬盘的一个文件中,这里请确保文件存在 File file = new File("d:/to.txt"); if(!file.exists()) { file.createNewFile(); } //通过文件来建立流 fos = new FileOutputStream(file); //将字符串转换为byte数组,一次性写入 fos.write(result.getBytes()); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { fos.flush(); fos.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } /** * 字节流读出 * @return */ public static String byteRead() { FileInputStream fis = null; //存放读取结果的String对象 String result = ""; try { //通过文件来建立一个流,文件不存在则出现异常 fis = new FileInputStream(new File("d:/from.txt")); //fis读取必须要用到byte[],所以要建立一个byte来存放字节流。这样就可以从文件中一点点读取了 byte []buffer = new byte[1024*3]; //每次读取字节的实际数目 int n = 0; //每次读取一个buffer长度,存到buffer中,直到没有读取到字节 while((n = fis.read(buffer, 0, buffer.length)) > 0) { result += new String(buffer,0,n); } System.out.println("【"+result.trim()+"】"); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { fis.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } return result; } /** * 通过fileReader来进行读取字符流 * @return */ public static String fileReader() { String result = ""; FileReader fr = null; try { fr = new FileReader(new File("d:/reader.txt")); //通过这个数组来做缓冲区,一点一点的读入到程序中 char []c = new char[2]; //实际读取的字符个数 int n = 0; //循环读取,直到文件的末尾 while((n = fr.read(c)) != -1) { result += new String(c,0,n); } System.out.println("【"+result+"】"); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { fr.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } return result; } /** * 将字符流写入到文件中 * @param str */ public static void fileWriter(String str) { FileWriter fw = null; try { fw = new FileWriter(new File("d:/writer.txt")); //将字符串一次性的写入到文件中 fw.write(str); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { fw.flush(); fw.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } /** * 一点一点读,并且将读出来的东西写入到另一个文件中 */ public static void readerWriter() { FileReader fr = null; FileWriter fw = null; try { fr = new FileReader(new File("d:/reader.txt")); //第二个参数为true时,表示追加写入 fw = new FileWriter(new File("d:/writer.txt"),true); //建立缓冲区 char []c = new char[2]; //实际读取的字符的个数 int n = 0; //一点一点读出字符,放到char数组中,直到末尾 while((n = fr.read(c)) != -1) { //将char数组中的字符写入文件中 fw.write(c, 0, n); } System.out.println("写入成功!"); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { fw.flush(); fw.close(); fr.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } /** * 通过BufferedReader来一行一行读取 * @return 如果正常则返回字符串,如果出错返回null */ public static String bufferedReader() { String result = null; FileReader fr = null; BufferedReader br = null; try { fr = new FileReader("d:/reader.txt"); //将File进行包装,可以一行一行的读取了 br = new BufferedReader(fr); String line = null;//定义读取一行字符后存储的String对象 //用这个来暂时存放string对象 StringBuilder sb = new StringBuilder(""); //一行一行读取,读取的东西每次存放到line中 while((line = br.readLine()) != null){ //result += line; sb.append(line);//将读取的每一行补到StringBuilder后面 } result = sb.toString().trim(); System.out.println("【"+result+"】"); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { br.close(); fr.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } return result; } }
分类:
File | IO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?