文档章节

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编程基础知识点和技术点归纳

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

Java小辰
05/23
0
0
跳槽时,这些Java面试题99%会被问到

我在 Oracle 已经工作了近 7 年,面试过从初级到非常资深的Java工程师,且由于 Java 组工作任务的特点,我非常注重面试者的计算机科学基础和编程语言的理解深度,可以不要求面试者非要精通 ...

Java小铺
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部