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():创建新文件,如果 ...
随机推荐
- Linux设备驱动编程中的中断与定时器处理
所谓中断是指CPU在执行过程中,出现某些突发时间急待处理,CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行. 中断分为(根据中断源来分): 内部中断 ...
- HW4.1
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- Java和.NET的GZIP压缩功能对比
本文主要比较了Java和.NET提供的GZIP压缩功能. 介绍 在本文中,我们将讨论Java和.NET提供的GZIP压缩功能,并且用实例来说明哪个压缩方法更佳. 在Java中,我们有提供GZIP压缩的 ...
- PC-改变电脑的CPU,内存,硬盘大小!
如何修改CPU频率及内存容量和硬盘大小 改变电脑的CPU,内存,硬盘大小!--------------------------------------------------------------- ...
- hdoj 2568 前进
前进 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- Windows Server 2012 R2中的网络诊断命令
Get-NetAdapter Get-NetIPAddress Get-NetIPConfiguration(GIP) TNC :Pinging Servers and Trace Route tnc ...
- 利用http协议实现图片窃取
在http协议里有一个referer,用来标示站点来源,大家都遇到这样的情况.转载了一篇博客,图片显示不正常,就和头信息里这个有关 原理:在webserver里面.依据http协议里面refered头 ...
- 四种方案解决ScrollView嵌套ListView问题
在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...
- iostat来对linux硬盘IO性能进行了解
http://www.php-oa.com/2009/02/03/iostat.html
- 数据库Mysql性能优化
http://www.cnblogs.com/itxiongwei/p/5533995.html