文档章节

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

布道牛
 布道牛
发布于 2016/02/16 16:09
字数 553
阅读 17
收藏 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二进制来读取和写入文件
  • 记得关闭流,异常处理
  • 难点在于代码注释处

© 著作权归作者所有

共有 人打赏支持
布道牛
粉丝 10
博文 37
码字总数 27377
作品 0
西安
后端工程师
java基础io流——配角也风流(不求甚解)

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

潇潇漓燃
05/30
0
0
【给初学者】Android学习路线

很多朋友都对学习路线问题感到迷茫,特别是还在上学的朋友们。在这里就详细的为大家介绍一下。 1.Java基础 很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Jav...

Jimmy Xie
2012/09/08
0
1
Java FileInputStream

一、序言 IO操作,才程序中比较普遍,JAVA 中提出了IO/NIO 的概念,也一直在说NIO 比IO快,一直不知道原因,就想memcache 和ehcache 比较优劣一样,这些东西得自己看看如何实现的,才 知道区...

pczhangtl
2014/08/03
0
0
JAVA NIO编程入门(一)

JAVA NIO编程入门(一) 一、前言 笔者之前接触的NIO编程比较少,所以对这一块的基础也比较弱,NIO作为java编程中一个重要的模块,不能很好的掌握它,感觉自己在java方面就掌握的不够,所以,...

木木匠
09/01
0
0
Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
9
0
现场看路演了!

HiBlock
昨天
19
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
12
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
20
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部