当前位置: 首页 > news >正文

java I/O的基本使用

1.什么是I/O

  a.I/O也称为:输入输出,可以理解为In,Out

  b.I/O流:读取键盘键入的字符,硬盘上的文件

  c.处理数据的类型分类:字节流、字符流

 

  字节流:以Stream结尾的,可以处理图片、文字、音频、视频等,读取一个字节返回一个字节。

  字符流:以Reader或Writer结尾,仅能处理纯文本数据,读取一个或多个字节,再查询指定编码表,最后返回字符。

 

  字节流代码实例演示:

  

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingFileStream {
    public static void main(String args[]) {
        File file = new File("D:\\Ideaworkspace\\UsingFileStream\\src\\hello.txt");
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileInputStream fis = new FileInputStream(file);
            byte[] bytes = new byte[1024];
            String str = "";
            while (fis.read(bytes) != -1) {
                str += new String(bytes,"utf-8");
            }
            System.out.println(str);
            //每次使用完流后都要关闭
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingFileOutStream {
    public static void main(String args[]){
        //写入的数据
        String str = "大家好,我是学生123456abc";
        //文件的路径
        File file =new File("D:\\Ideaworkspace\\UsingFileStream\\src\\hello");
        if(!file.exists()){
            try {
                //如果不存在就创建文件
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            //实例化输出流
            FileOutputStream fos = new FileOutputStream(file);
            byte [] btyes = str.getBytes();
            fos.write(btyes);
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

  复制图片

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class CopyFile {
    public static void main(String args[]){

        try {
            FileInputStream fis = new FileInputStream("D:\\Ideaworkspace" +
                    "\\UsingFileStream\\img.jpg");
            FileOutputStream fos = new FileOutputStream("D:\\Ideaworkspace" +
                    "\\UsingFileStream\\newImg.jpg");
            byte [] bytes = new byte[1024];
            while (fis.read(bytes) != -1){
                fos.write(bytes);
            }
            fis.close();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  

  字符流实例演示:

  

import java.io.*;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingStreamReader {
    public static void main(String[] args) {
        try {
            //实例化字节流
            FileInputStream fis = new FileInputStream("D:\\Ideaworkspace" +
                    "\\UsingFileReaderAndWriter\\src\\test.txt");
            //将字节流转化给字符流
            InputStreamReader isr = new InputStreamReader(fis, "utf-8");
            FileOutputStream fos = new FileOutputStream("D:\\Ideaworkspace" +
                    "\\UsingFileReaderAndWriter\\src\\newTest.txt");
            OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
            char[] chars = new char[100];
            int i;
//            String str = "";
            while ((i = isr.read(chars)) != -1){
//                str += new String(chars,0,i);
                osw.write(chars,0,i);
            }
//            System.out.println(str);
            //关闭流,按照先打开后关闭后打开先关闭的原则
            osw.close();
            fos.close();
            isr.close();
            fis.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

 

转载于:https://www.cnblogs.com/prescheng/p/5839911.html

相关文章:

  • java多线程中的join方法详解
  • java多线程总结
  • PHP 图片处理工具类(添加水印与生成缩略图)
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • MyEclipse从数据库反向生成实体类之Hibernate方式
  • 城市选择案例
  • 《深入浅出 Java Concurrency》——原子操作
  • 第18章 认识系统服务(daemons)
  • 《深入浅出 Java Concurrency》—锁机制(一)Lock与ReentrantLock
  • iOS开发中那些高效常用的宏
  • 《深入浅出 Java Concurrency》—锁机制(二) AQS
  • codevs4416 FFF 团卧底的后宫
  • 《深入浅出 Java Concurrency》—锁机制(三) 加锁的原理 (Lock.lock)
  • 1055. 集体照
  • 《深入浅出 Java Concurrency》—锁机制(四) 锁释放与条件变量 (Lock.unlock And Condition)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular 4.x 动态创建组件
  • Gradle 5.0 正式版发布
  • Java 23种设计模式 之单例模式 7种实现方式
  • Laravel核心解读--Facades
  • leetcode386. Lexicographical Numbers
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Mysql5.6主从复制
  • MySQL主从复制读写分离及奇怪的问题
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • WePY 在小程序性能调优上做出的探究
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 强力优化Rancher k8s中国区的使用体验
  • 使用parted解决大于2T的磁盘分区
  • 世界上最简单的无等待算法(getAndIncrement)
  • 我与Jetbrains的这些年
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Java总结 - String - 这篇请使劲喷我
  • MPAndroidChart 教程:Y轴 YAxis
  • ​iOS实时查看App运行日志
  • ​低代码平台的核心价值与优势
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (安卓)跳转应用市场APP详情页的方式
  • (二)Linux——Linux常用指令
  • (十六)Flask之蓝图
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)Sql Server 保留几位小数的两种做法
  • (转)大道至简,职场上做人做事做管理
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .htaccess配置重写url引擎
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • [ C++ ] STL_list 使用及其模拟实现