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. onsubmit ajax return false 无效

    var flat=false; return flat; async:false, 是重点.   执行ajax时return false的function 与onsubmit()不是同一个函数,所以无 ...

  2. PHP $a='abcdef';请取出$a的值并打印第一个字母

    echo $a[0];echo $a{0};echo chr(ord($a));echo substr( $a, 0,1);

  3. DS二叉树--叶子数量

    题目描述 计算一颗二叉树包含的叶子结点数量. 提示:叶子是指它的左右孩子为空. 建树方法采用“先序遍历+空树用0表示”的方法,即给定一颗二叉树的先序遍历的结果为AB0C00D00,其中空节点用字符‘0 ...

  4. Spring mvc Json 的正确返回姿势

    我们经常都需要封装统一JSON格式 例如以下形式 { “data”:“输出的数据”, “code”:“响应代码”, “msg”:“响应信息” } /** * Created by linli on 2 ...

  5. What is SolrCloud? (And how does it compare to master-slave?)

    What is SolrCloud? (And how does it compare to master-slave?) SolrCloud is a set of new features and ...

  6. 数据类型---列表,for循环

    定义:列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作. L1=[]   #定义空列表 L2=[1,2,3,4]   #存4个值,索引为0-3 L3= ["ab ...

  7. 廖雪峰Java3异常处理-1错误处理-2捕获异常

    1捕获异常 1.1 finally语句保证有无错误都会执行 try{...}catch (){...}finally{...} 使用try...catch捕获异常 可能发生异常的语句放在try{... ...

  8. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...

  9. random模块常用功能

  10. git知识讲解

    git初始化 1.设置名字和邮箱 git config --global user.name "zhangsan" git config --global user.email & ...