####java重复造轮子系列篇------io(一)

java io 字符流和字节流基本的读取和写入文件操作

java io 读取操作注意点

java io 流基本的读取和写入文件操作

package com.zeng;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class StreamExample {

public static void main(String[] args) {

try {

String dirfilename ="write.txt";

writeFileContent();

String s =readFileConetent(dirfilename);

System.out.println(s);

String sourcename ="hello.txt";

inputFileContent(sourcename);

String outputfilename ="output.txt";

outputFileContent(outputfilename);

} catch (IOException e) {

e.printStackTrace();

}

}

/*

* 字符流读取文件的内容

*/

public static String readFileConetent(String filename) throws IOException{

String path = "F:"+File.separator+filename;

File file = new File(path);

FileReader fr =new FileReader(file);

char[] ch =new char[1024];

StringBuffer sb =new StringBuffer();

while(fr.read(ch)!=-1){

sb.append(ch);

ch =new char[1024];

}

fr.close();

return sb.toString();

}

/*

* 字符流写入文件的内容

*/

public static void writeFileContent() throws IOException{

String path ="F:"+File.separator+"write.txt";

File file =new File(path);

String str = readFileConetent("hello.txt");

//每次都会将文件(write.txt)的内容重新干掉,在写入文件,若是想要追加使用的方法是 new FileWrite(file,true)

FileWriter fr =new FileWriter(file);

fr.write(str);

fr.close();

}

/*

* 字节流读取文件的内容

*/

public static String inputFileContent(String filename) throws IOException{

String path ="F:"+File.separator+filename;

File file =new File(path);

FileInputStream fis =new FileInputStream(file);

byte[] bt =new byte[1024];

StringBuffer sb = new StringBuffer();

/*

* fis.read(ch) 理解以光标的形式读取,光标最开始是居于文件头,

* 读取1024个字节后,光标停留在此,读取的值赋值给了bt.

*/

while(fis.read(bt)!=-1){

//要将byte[]转化为string

sb.append(new String(bt));

bt =new byte[1024];

}

fis.close();

return sb.toString();

}

/*

* 字节流写入文件的内容

*/

public static void outputFileContent(String filename) throws IOException{

String path ="F:"+File.separator+filename;

File file =new File(path);

FileOutputStream fis =new FileOutputStream(file);

String str = inputFileContent("hello.txt");

byte[] bt =str.getBytes(); //将string转化成byte数组

fis.write(bt);

fis.close();

}

}

java io 读取操作注意点

字符流和字节流的方向性,我相信是大多初学者比较模糊的地方,很多资料是以程序作为参考物来解释流向的,我是把内存作为参考物来理解的,reader和inputstream 是把文件读到内存中去,write和output是把内存的数据输出到文件或设备中去

字符流通常以字符char数组读取或写入文件,字节流是以byte二进制来读取和写入文件

记得关闭流,异常处理

难点在于代码注释处

javaio_java------io基础(一)相关推荐

  1. cmd 将文件夹下文件剪切到另外一个文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  2. 【JAVA核心知识】6.1: JAVA IO基础

    IO基础 1 输入与输出 2 流 2.1 字节流 2.2 字符流 3 阻塞IO与非阻塞IO 3.1 阻塞IO 3.2 非阻塞IO 3.3 生活举例 4 同步IO与异步IO 4.1 同步IO 4.2 异 ...

  3. netty系列之IO基础

    建议阅读文件io和网络io了解IO基础知识 和rocketMq-broker篇之消息存储IO了解零拷贝知识 socket状态 1.SOCKET状态介绍 1.客户端独有的:(1)SYN_SENT (2) ...

  4. 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

    本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  5. java流程图表示输入 输出_Java IO基础总结

    Java IO基础总结 Java中使用IO(输入输出)来读取和写入,根据数据走向可分为输入流和输出流,用户可以从输入流中中读取信息,但不能写它,相反,对输出流,只能往输入流写,而不能读它(输入流表示从 ...

  6. mysql 网络io_分布式 | DBLE 网络模块源码解析(一):网络 IO 基础知识

    作者:路路 热爱技术.乐于分享的技术人,目前主要从事数据库相关技术的研究. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 前言 对于计算机学科来说 ...

  7. java 文件 剪切_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 很多朋友在看我的<java IO总结系列>之前觉得创建文件.文件夹删除文件这些基础操作真的是太简单了.但看了我的文章之后,有小 ...

  8. java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...

  9. Java——IO基础

    1.Java Io流的概念,分类,类图. 1.1 Java Io流的概念     java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作.在java中把不同的输入/输出源(键盘,文件 ...

  10. JavaApi:IO基础

    JAVA IO java io可以让我们用标准的读写操作来完成对不同设备的读写数据工作. java将IO按照方向划分为输入与输出,参照点是我们写的程序. 输入:用来读取数据的,是从外界到程序的方向,用 ...

最新文章

  1. 测试用例设计方法基础理论知识
  2. python增删改查的框架_简单的Django框架增删改查操作
  3. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )
  4. 【产品】腾讯产品经理总结:toB的产品经理和toc产品经理区别
  5. 聚焦“裂变”,又拍云推出直播云等多场景解决方案
  6. Musical Theme
  7. php数组地址,怎么实现javascript数组与php数组的地址传递
  8. 网关限流(令牌桶算法)
  9. 自动生成考勤表_可自动变色的考勤表,逢周末自动更新,你会制作吗?
  10. TortoiseGit与github实现项目的上传
  11. 提交信息html模板,提交留言HTML模板代码
  12. 一文轻松搞懂-条件随机场CRF
  13. inDesign教程,如何创建灵活的标头设计?
  14. TCPMP-interface相关文件函数解析 -about.c
  15. 安装WIN10系统时“谁将会使用这台电脑”输入卡死状态的问题
  16. 202013 启明星辰入侵防御 简单使用手册
  17. SpringBoot 系列教程(九十二):Spring Boot全局设置Jackson时间处理
  18. 转:查理·芒格:让打击和麻烦成为成长的契机
  19. Windows预览体验计划空白等一些问题的解决办法
  20. POJ2385 Apple Catching 题解

热门文章

  1. 【优化求解】基于matlab蚁群算法求解函数极值问题【含Matlab源码 1201期】
  2. 【TSP】基于matlab免疫算法求解31城市旅行商问题【含Matlab源码 1149期】
  3. 【PID优化】基于matlab粒子群算法PID控制器优化设计【含Matlab源码 1122期】
  4. 【手写数字识别】基于matlab PCA手写数字识别【含Matlab源码 309期】
  5. 动态时间规整算法_如何使用动态时间规整算法进行语音识别
  6. linux mysql 消失_Linux下修改mysql的root密码后数据库消失怎么处理
  7. linux挂载安卓手机命令,Android开发中,mount指令的各种用法大全,挂载设备的各种配置...
  8. C语言贴图图片路径不对,backgroundImage 路径问题 vue 图片的引入方式
  9. android 按钮复用,Android Button 自带阴影效果另一种解决办法
  10. python全局解释器锁 tensorflow_《深度剖析CPython解释器》25. 解密Python中的多线程(第一部分):初识GIL、以及多个线程之间的调度机制...