文档章节

java------io基础(一)

布道牛
 布道牛
发布于 2016/02/16 16:09
字数 553
阅读 56
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

####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二进制来读取和写入文件
  • 记得关闭流,异常处理
  • 难点在于代码注释处

© 著作权归作者所有

布道牛
粉丝 11
博文 37
码字总数 27377
作品 0
西安
后端工程师
私信 提问
加载中

评论(0)

泥沙砖瓦浆木匠/java-core-learning-example

感谢赞助的ta们 Java 核心系列教程,关于Java核心技术学习积累的例子,是初学者及核心技术巩固的最佳实践。 包括基础语法,OOP,字符串,集合,IO,反射,线程,网络等。 未完成模块:阿里J...

泥沙砖瓦浆木匠
2019/04/02
0
0
JAVA基础(10)——IO、NIO

转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 JAVA基础(3)——容器(1)——常用容器分类 JAVA...

osc_cyo2dovg
2018/02/13
8
0
目前发现最好的java入门知识汇总(有源码)

源码地址 https://github.com/javanan/javacore Java 基础 Java 基础 总结 Java 的一些基础特性。 Java 开发环境 Java 基础语法特性 Java 基本数据类型 Java 类和对象 Java 方法 Java 数组 ...

不想当码农的程序员
2019/12/25
0
0
java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃
2018/05/30
0
0
某马某智JavaEE57期 2019最新基础+就业+在职加薪_汇总

黑马传智JavaEE57期 2019最新基础+就业+在职加薪 文件路径: G:学习中黑马传智JavaEE57期 2019最新基础+就业+在职加薪阶段1 语言基础+高级·1-2 -面向对象和封装 阶段1 语言基础+高级· 阶段...

osc_k5dg06i6
2019/05/23
5
0

没有更多内容

加载失败,请刷新页面

加载更多

程序远自我修养

详见: https://leohxj.gitbooks.io/a-programmer-prepares/content/pm/good-product-manager.html

郭恩洲_OSC博客
14分钟前
9
0
使用git clone命令克隆文件出现error: RPC failed相关错误

使用git clone命令克隆文件出现error: RPC failed; curl 18 transfer closed with outstanding read data remain问题 笔者最近在使用git clone命令从github克隆源码到电脑时出现了以下问题 ...

独钓渔
41分钟前
22
0
Java中JNI的使用详解第三篇:JNIEnv类型中方法的使用

在来看一下C++代码: #include<iostream.h> #include "com_jni_demo_JNIDemo.h" JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj) { //获取obj中对象......

天王盖地虎626
今天
21
0
直播撬动618变局:抖快凶猛、商家清醒

  文/鸿键   来源:深响(ID:deep-echo)   核心要点   直播带货热潮持续升温,今年的传统电商大促节 618 成了第一个“全民直播”的 618,直播带货不仅为电商带来增量,同时也搅动着行...

计算无敌
今天
30
0
《一天一模式》— 观察者模式

一、观察者模式的概念 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题...

XuePeng77
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部