io流之写文件
用Java程序写文件有多种方式,对于不同类型的数据,有不同的写方法。写文件的关键技术点如下:
1.FileOutputStream打开文件输出流,通过write方法以字节为单位写文件,是写文件最通用的方法,能写任何类型的文件,特别适合写二进制数据文件。
2.OutputStreamWriter打开文件输出流,通过write方法以字符为单位写文件,能够将字符数组和字符串写入文件。
3.PrintWriter打开文件输出流,通过print和println方法将字符串写入文件,与System.out的用法相似,常用于写格式化文本。
通过以上各种文件输出流将数据写入文件后,需要调用close方法关闭文件输出流。
实例如下:
package book.io; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer; public class WriteToFile {
//以字节为单位写文件,适合于写二进制文件,如图片等
public static void writeFileByBytes(String fileName){
File file = new File(fileName);
OutputStream out = null;
try {
out = new FileOutputStream(file);
String content = "文件内容:\n1,The First line;\n2,The Second line";
byte[] bytes = content.getBytes();//读取文件输出流中的字节
//写入文件
out.write(bytes);
System.out.println("写文件" + file.getAbsolutePath() + "成功!");
} catch (IOException e) {
System.out.println("写文件" + file.getAbsolutePath() + "失败!");
e.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//以字符为单位写文件
public static void writeFileByChars(String fileName){
File file = new File(fileName);
Writer writer = null;
try {
writer = new OutputStreamWriter(new FileOutputStream(file));
String content = "文件内容:\n1,The first line;\n2,The second line";
writer.write(content);
System.out.println("写文件" + file.getAbsolutePath() + "成功!");
} catch (IOException e) {
System.out.println("写文件" + file.getAbsolutePath() + "失败!");
e.printStackTrace();
}finally{
if(writer != null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//以行为单位写文件
public static void writeFileByLines(String fileName){
File file = new File(fileName);
PrintWriter writer = null;
try {
writer = new PrintWriter(new FileOutputStream(file));
writer.println("文件内容:");
//写入各种基本类型数据
writer.println(true);
writer.print(155);
writer.println();
writer.flush();
System.out.println("写文件" + file.getAbsolutePath() + "成功!");
} catch (FileNotFoundException e) {
System.out.println("写文件" + file.getAbsolutePath() + "失败!");
e.printStackTrace();
}finally{
if(writer != null){
writer.close();
}
}
}
public static void main(String[] args){
String fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp1.txt";
WriteToFile.writeFileByBytes(fileName);
fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp2.txt";
WriteToFile.writeFileByChars(fileName);
fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp3.txt";
WriteToFile.writeFileByLines(fileName);
}
}
结果:
写文件C:\Users\Admin\Desktop\CAI\20160720\temp1.txt成功!
写文件C:\Users\Admin\Desktop\CAI\20160720\temp2.txt成功!
写文件C:\Users\Admin\Desktop\CAI\20160720\temp3.txt成功!
分析:1.用writeFileByBytes方法以字节为单位写数据到文件。使用了字节输出流FileOutputStream类,通过write方法可以一次写入一个字节,也可以写入一个字节数组
2.writeFileByChars方法以字符为单位写数据到文件。使用了字符输出流OutputStreamWriter类,将FileOutStream对象封装成OutputStream对象,再调用write方法将字符数据写入到文件中,通过write方法可以一次写入一个字符、一个字符数组或者一个字符串。
3.writeFileByLines方法以字符串为单位写数据到文件。使用了PrintWriter类,将FileOutputWriter对象封装成PrintWriter对象,再调用print或者println方法将字符串写入到文件,其中println在写入字符串后进行换行,其用法与System.out进行标准输出相似。
io流之写文件的更多相关文章
- C#常用IO流与读写文件
.文件系统 ()文件系统类的介绍 文件操作类大都在System.IO命名空间里.FileSystemInfo类是任何文件系统类的基类:FileInfo与File表示文件系统中的文件:Directory ...
- C#常用IO流与读写文件 (转)
源自https://www.cnblogs.com/liyangLife/p/4797583.html 谢谢 1.文件系统 (1)文件系统类的介绍 文件操作类大都在System.IO命名空间里.Fil ...
- Java 基础(四)| IO 流之使用文件流的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...
- Java IO流之普通文件流和随机读写流区别
普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...
- IO流-批量修改文件名称案例
/* * 源文件名: 桌面-我们今天学习IO流了哈哈哈哈-001.jpg * 修改后文件名: 桌面-000x.jpg */public class File_listFiles_upda ...
- Java中使用IO流实现大文件的分裂与合并
文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时候就可以把这个文件切割成3个1G的文件 ,分 ...
- IO流-复制多极文件夹(递归实现)
package com.io.test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- JAVA IO流编程 实现文件的写入、写出以及拷贝
一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...
- Java笔记(二十七)……IO流中 File文件对象与Properties类
File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...
随机推荐
- ssh,telnet远程AIX以及数据传输问题
(1)telnet远程 输入:telnet 目标IP 输入用户名,密码 进入远程机器 (2)AIX默认安装ftp,使用ftp传输数据 ftp 目标IP地址 输入用户名,密码(远程服务器的) 或者输入f ...
- HDU1075 - What Are You Talking About(Trie树)
题目大意 给定一些火星文单词以及对应的英语单词,然后给你一些火星文,要求你翻译成对应的英文 题解 第一次写Trie树! 把所有火星文单词插入到Trie树中,并且每个火星文单词结尾的节点记录相应英文单词 ...
- Centos System Info
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ho ...
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
原文出处: 小宝鸽 一.Redis了解 1.1.Redis介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). ...
- Spring 3.0 注解注入详解
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- INSERT DELAYED 句法
INSERT 语句的 DELAYED 选项是一个 MySQL 特有的选项,如果你的客户端不能等待 INSERT 的完成,这将会是很有用的.This is a common problem when y ...
- Java命令行运行参数说明大全--转
来源:http://xinklabi.iteye.com/blog/837435 Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\ ...
- 可拖拽重排的CollectionView
来源:wazrx 链接:http://www.jianshu.com/p/8f0153ce17f9 写在前面 这段时间都在忙新项目的事儿,没有时间倒腾,这两天闲下来,想着一直没有细细的研究Collec ...
- Link-local address
A link-local address is an Internet Protocol address that is intended only for communications within ...
- Android(java)学习笔记163:Android开发时候颜色设置是bgr不是rgb
eb" android:background ="#"