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. 黄聪: bootstrap 多模态框实现

    默认情况下,bootstrap模态框是不支持多个覆盖的,下面是一个解决办法(本人亲测), 将下面的代码复制到当前需要多个模态框的页面,问题就可以解决 $(document).on('show.bs.m ...

  2. git log乱码显示

    1.Linux下UTF8编码 [xusi@pre-srv24 crm2]$ localeLANG=en_US.UTF-8 设置如下: git config --global i18n.commiten ...

  3. 以zookeeper为注册中心搭建spring cloud环境

    在spring cloud体系中,有多种手段实现注册中心,本例中采用zookeeper作为注册中心的角色.服务提供者向zookeeper注册,服务消费者从zookeeper中发现服务提供者的相关信息, ...

  4. jquery add()方法

    <html><meta charset="utf-8"><head><script type="text/javascript& ...

  5. 1125 Chain the Ropes (25 分)

    1125 Chain the Ropes (25 分) Given some segments of rope, you are supposed to chain them into one rop ...

  6. 如何进行CodeReview

    一.代码规范的要点 代码规范主要分为风格规范与设计规范两大类: 1.代码风格规范 主要是文字上的规定,看似表面文章,实际上非常重要. 具体有如下几个方面: (1)缩进 (2)行宽 (3)断行/空白行 ...

  7. keepalived主备节点都配置vip,vip切换异常案例分析

    原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...

  8. 在VMware安装Centos7

    1.新建虚拟机==>典型==>稍后安装操作系统==>选择linux==>centos 64位 2.填写虚拟机名字以及安装位置. 3.磁盘容量采用默认即可. 4. 自定义硬件: ...

  9. Python多进程vs多线程

    多任务的两种方式:多进程和多线程. 如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker. 如果用多线程实现Master-Worker,主线程就是Master, ...

  10. 卷积神经网络之GoogleNet:inceptionV3模型学习

    Rethinking the Inception Architecture for Computer Vision 论文地址:https://arxiv.org/abs/1512.00567 Abst ...