Java的I/O对文件的操作
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对文件的操作的更多相关文章
- java安全编码指南之:文件IO操作
目录 简介 创建文件的时候指定合适的权限 注意检查文件操作的返回值 删除使用过后的临时文件 释放不再被使用的资源 注意Buffer的安全性 注意 Process 的标准输入输出 InputStream ...
- java安全编码指南之:文件和共享目录的安全性
目录 简介 linux下的文件基本权限 linux文件的特殊权限 Set UID 和 Set GID Sticky Bit SUID/SGID/SBIT权限设置 文件隐藏属性 特殊文件 java中在共 ...
- java基本权限指南之:文件和共享目录的基本权限
简介 java程序是跨平台的,可以运行在windows也可以运行在linux.但是平台不同,平台中的文件权限也是不同的.windows大家经常使用,并且是可视化的权限管理,这里就不多讲了. 本文主要讲 ...
- Java的文件读写操作
file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...
- Java文件IO操作应该抛弃File拥抱Paths和Files
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...
- Java的文件读写操作 <转>
目录: file内存----输入流----程序----输出流----file内存 java中多种方式读文件 判断文件是否存在不存在创建文件 判断文件夹是否存在不存在创建文件夹 java 写文件的三种方 ...
- 更新java对xml文件的操作
//更新java在xml文件中操作的内容 public static void upda(Document doc) throws Exception{ //创建一个TransformerFactor ...
- Java 7 中 NIO.2 的使用——文件递归操作
众所周知,递归编程是一项有争议的技术,因为它需要大量的内存,但是它能简化一些编程任务.基本上,一个递归操作都是程序调用自己传递参数修改的值或者参数传递到当前的程序循环中.递归编程通常用来计算阶乘斐波那 ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
随机推荐
- ubuntu-docker入门到放弃(五)docker网络管理
查看docker宿主机的网卡信息我们会发现,有一个docker0的网卡,这个网卡就是用于跟docker容器进行通讯的,这个网段跟我们docker容器的网段是一样的: #ifconfig docker容 ...
- Complexity and Tractability (3.44) - The Traveling Salesman Problem
Copied From:http://csfieldguide.org.nz/en/curriculum-guides/ncea/level-3/complexity-tractability-TSP ...
- Java第11次实验(数据库)
参考资料 数据结构实验参考文件 数据库初始化文件 MySQL操作视频 数据库相关jar文件请参考QQ群文件. 第1次实验 1. MySQL数据库基本操作 完整演示一遍登录.打开数据库.建表.插入 常见 ...
- Hadoop 管理工具HUE配置-集成Unix用户和用户组
HUE安装完成之后,第一次登录的用户就是HUE的超级用户,可以管理用户,等等.但是在用的过程发现一个问题这个用户不能管理HDFS中由supergroup创建的数据. 虽然在HUE中创建的用户可以管理自 ...
- 查看app日志的方法
可以打开SDk里面的 ddms.bat 查看日志 路径: android-sdk-macosx/tools/ddms SDK下载的地址: http://www.androiddevtools.cn/ ...
- Flume的Channel
一.Memory Channel 事件将被存储在内存中(指定大小的队列里) 非常适合那些需要高吞吐量且允许数据丢失的场景下 属性说明: 二.JDBC Channel 事件会被持久化(存储)到可靠的数据 ...
- 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案
技术架构在向spring Cloud转型时,一定会有一些年代较久远的项目,代码已变成天书,这时就希望能在不大规模重构的前提下将这些传统应用接入到Spring Cloud架构体系中作为一个服务以供其它项 ...
- 廖雪峰Java4反射与泛型-3范型-3编写泛型
编写泛型类比普通的类要麻烦,而且很少编写泛型类. 1.编写一个泛型类: 按照某种类型(例如String)编写类 标记所有的特定类型例如String 把特定类型替换为T,并申明 Pair.java pa ...
- Linux下的文件操作——基于文件描述符的文件操作(2)
文件描述符的复制 MMAP文件映射 ftruncate修改文件大小 文件描述符的复制 系统调用函数dup和dup2可以实现文件描述符的复制,经常用来重定向进程的stdin(0), stdout(1 ...
- Postgres安装
yum install zlib-devel gcc make #创建用户和组groupadd postgresuseradd -g postgres postgres mkdir -p /usr/l ...