I/O操作主要是指使用Java进行输入,Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。

主要是通过下面两个类实现对文件的输入输出操作:

FileInputStream  输入类 

FileOutputStream输出类

可以参考 http://blog.csdn.net/hguisu/article/details/7418161,这篇文章写的挺详细。

下面代码是简单的一些对文件的操作:

1、读取TXT文件的两种方式:

    /*
* 第二种方式 按行读取
*/
public void ReaderFile() {
String paths = this.getClass().getResource("").getPath();
System.out.println(paths);
String path = "E:\\学习文档\\一个程序员的奋斗史.txt";
File file = new File(path);
if (file.exists()) {
try {
FileInputStream Input=new FileInputStream(file);
//获取 StreamReader对象,对编码进行处理
InputStreamReader StreamReader=new InputStreamReader(Input,"UTF-8");
BufferedReader reader=new BufferedReader(StreamReader);
String str=null;
while (reader.readLine() != null) {
str=reader.readLine();
System.out.println(str);
}
} catch (IOException e) {
System.out.println("异常:"+e);
}
}
}
/*
* 第二种方式
*/
public void ReaderFile() {
String paths = this.getClass().getResource("").getPath();
System.out.println(paths);
String path = "E:\\学习文档\\一个程序员的奋斗史.txt";
File file = new File(path);
if (file.exists()) {
try {
FileInputStream Input=new FileInputStream(file);
//获取 StreamReader对象,对编码进行处理
byte[] buffer=new byte[Input.available()];
Input.read(buffer);
String str=new String(buffer,"utf-8");
System.out.println(str);
} catch (IOException e) {
System.out.println("异常:"+e);
}
}
}

2、写TXT文件

/*
* 写文件
*/
public void WriteFile() {
//创建一个文本文件
File file=new File("E:\\学习文档","测试文本.txt");
try {
FileOutputStream output=new FileOutputStream(file);
byte[] buffer="这是一个测试文本的内容".getBytes();
output.write(buffer);
output.close();
System.out.println("OK");
} catch (IOException e) {
System.out.println(e);
}
}

3、在文本的后面继续写入文字

//写文件 -- 继续下一行往下写
public void WriteLineFile() {
File file=new File("E:\\学习文档","wwj.txt");
try {
if(!file.exists())
file.createNewFile();
FileInputStream input=new FileInputStream(file);
byte[] buffer=new byte[input.available()];        //创建数组,大小为流的大小
input.read(buffer); //将原来的文件流加入到缓冲区
String content=new String(buffer,"utf-8")+"往下写下一行的内容------------------------\r\n";
byte[] buffercontent=content.getBytes(); //将字符串转换为字节数组
FileOutputStream out=new FileOutputStream(file);
out.write(buffercontent); //将缓冲区数据写入
out.close(); //关闭流
input.close();
System.out.println("完成");
} catch (IOException e) {
System.out.println(e);
}
}

4、获取一个文件的数据,输出到指定的目录(主要是用于下载文件)

// 获取一个文件的数据,输出到另一个地方
public void GetWriteFile() {
File Getfile = new File("E:\\学习文档", "学通ASP.NET的24堂课.pdf");
try {
// 获取文件输入流对象
FileInputStream input = new FileInputStream(Getfile);
// 创建字节数组 大小为流的的长度
byte[] buffer = new byte[input.available()];
// 写入到缓冲区
input.read(buffer);
// 获取输出对象
FileOutputStream output = new FileOutputStream("C:\\Users\\wwj\\Desktop\\24堂课.pdf");
output.write(buffer);
output.close();
input.close();
System.out.println("输出成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Java的I/O对文件的操作的更多相关文章

  1. java安全编码指南之:文件IO操作

    目录 简介 创建文件的时候指定合适的权限 注意检查文件操作的返回值 删除使用过后的临时文件 释放不再被使用的资源 注意Buffer的安全性 注意 Process 的标准输入输出 InputStream ...

  2. java安全编码指南之:文件和共享目录的安全性

    目录 简介 linux下的文件基本权限 linux文件的特殊权限 Set UID 和 Set GID Sticky Bit SUID/SGID/SBIT权限设置 文件隐藏属性 特殊文件 java中在共 ...

  3. java基本权限指南之:文件和共享目录的基本权限

    简介 java程序是跨平台的,可以运行在windows也可以运行在linux.但是平台不同,平台中的文件权限也是不同的.windows大家经常使用,并且是可视化的权限管理,这里就不多讲了. 本文主要讲 ...

  4. Java的文件读写操作

    file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...

  5. Java文件IO操作应该抛弃File拥抱Paths和Files

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...

  6. Java的文件读写操作 <转>

    目录: file内存----输入流----程序----输出流----file内存 java中多种方式读文件 判断文件是否存在不存在创建文件 判断文件夹是否存在不存在创建文件夹 java 写文件的三种方 ...

  7. 更新java对xml文件的操作

    //更新java在xml文件中操作的内容 public static void upda(Document doc) throws Exception{ //创建一个TransformerFactor ...

  8. Java 7 中 NIO.2 的使用——文件递归操作

    众所周知,递归编程是一项有争议的技术,因为它需要大量的内存,但是它能简化一些编程任务.基本上,一个递归操作都是程序调用自己传递参数修改的值或者参数传递到当前的程序循环中.递归编程通常用来计算阶乘斐波那 ...

  9. Java 字节流实现文件读写操作(InputStream-OutputStream)

    Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...

随机推荐

  1. 通过Word 2016 发布的内容

    从Word 2007 开始就支持的功能的,第一次使用. 在cnBlogs.com的个人设置中允许使用客户端发布:https://i.cnblogs.com/Configure.aspx Word中配置 ...

  2. LeetCode——7. Reverse Integer

    一.题目链接:https://leetcode.com/problems/reverse-integer/ 二.题目大意: 给定一个整数,要求反转该整数之后再返回:如果归返回的整数超过了int型整数的 ...

  3. Mina 专题

    未完待续>>> 目录: 一)同步.异步.阻塞.非阻塞 二)Java中的NIO 三)Mina 异步请求 四)Mina 同步请求 五)Mina 核心类及处理流程 六)Mina 线程模型 ...

  4. Java知识之运算符篇

    运算符 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. 赋值运算符:=.+=.-=.*=./=.%=.&=.|=.~=.^=.<<=.>>= . &g ...

  5. [转]短短几年,Ceph如何引爆中国的开源热潮?

    原文:http://article.ccw.com.cn/article/view/131427 ,2018-04-02,本文作者:计世传媒 赵新竹 世民Sammy:非常荣幸有机会在北京Cephalo ...

  6. [转][MVC4]

    <add key="vs:EnableBrowserLink" value="false"/> 把这个加到 <appSettings /> ...

  7. Hash算法原理的简单分析

    哈希计算就是努力的把比较大的数据存放到相对较小的空间中.最常见的哈希算法是取模法.下面简单讲讲取模法的计算过程.比如:数组的长度是5.这时有一个数据是6.那么如何把这个6存放到长度只有5的数组中呢.按 ...

  8. JIT和AOT编译详解

    JIT和AOT编译介绍 JIT - Just-In-Time             实时编译,即时编译 通常所说的JIT的优势是Profile-Based Optimization,也就是边跑边优化 ...

  9. sas基础系列(3)-表格标颜色示例

    以下代码可以直接在SAS执行查看效果 ods path reset;ods path show;ods html close;options nodate;ods pdf file="Pro ...

  10. centos 7怎么通过图形界面来配置静态ip

    除了通过修改配置文件的方法来配置静态ip,我们还可以通过图形界面来配置,这样做其实更加方便一点 先进入设置页面 选择网络 我这里是通过有线上网的,我们之间修改配置就可以了 选择ipv4,和manual ...