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. Python多版本共存virtualenv配置

    virtualenv 前提是已经安装好了python.我的ubuntu是自带了python2.7和python3.6 安装vrtualenv sudo apt-get install python-v ...

  2. Redis几种数据类型的应用场景(转)

    原文地址:https://blog.csdn.net/xiaoliuliu2050/article/details/73250708

  3. Centos 6.3 安装教程

    如果创建虚拟机,加载镜像之前都报错,可能是virtualbox 的版本问题,建议使用virtualbox    4.3.12 版本 1. 按回车 2.Skip 跳过 3.next 4.选择中文简体 n ...

  4. 利用curl 模拟多线程

    所谓多线程就是多个 程序同时运行,单线程:执行一段逻辑,等待完成后 在执行另外一个. 多线程:几个逻辑同时进行处理,不需要相互等待,提高了总的执行时间 接下来就用curl实现多线程 实现逻辑 1. f ...

  5. materializecss的水波纹效果

    参考http://www.materializecss.cn/waves.html <html lang="en"> <head> <meta cha ...

  6. bzoj4812: [Ynoi2017]由乃打扑克

    由于查询的是树链的并的信息,同时信息不能高效合并,只能考虑用bitset维护,小范围暴力预处理以便从bitset算出答案 对树分块,保证每块是连通的且直径较小,对分出的块缩点建新树,在新树上建树上ST ...

  7. 信息安全-加密:DES 加密

    ylbtech-信息安全-加密:DES 加密 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资 ...

  8. jquery 点击元素以外任意地方隐藏该元素的方法

    文章来源:百度知道 我的思路是给body绑定一个click事件,然后判断当前鼠标点击的区域是当前元素还是元素以外区域,如果点击对象不是当前元素,则隐藏该元素. 假设对象的id为divBtn,则代码如下 ...

  9. 开启BBR加速

    在linux里用 wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x b ...

  10. 漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

    本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理.设计.以及在我们大数据场景下的实现方式. 全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近 ...