java写文件
1 使用FileWrite写文本文件
2
3
4 public static void useFileWriter(String fileName) throws IOException {
5 File file = new File(fileName);
6 FileWriter fileWriter = new FileWriter(file);
7
8 fileWriter.write("it is a test");
9
10 fileWriter.close();
11 }
12
13
14
15 使用BufferedWrite写文本文件
16
17
18 public static void useBufferedWriter(String fileName) throws IOException{
19 File file = new File(fileName);
20 BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName));
21
22 bufferedWriter.write("hello bufferedwrite");
23
24 bufferedWriter.flush();
25 bufferedWriter.close();
26 }
27
28
29
30 使用Files写文件,最简单
31
32
33 public static void useJdk8(String fileName) throws IOException {
34 Files.write(Paths.get(fileName), "hello usejdk8".getBytes(), StandardOpenOption.CREATE);
35 }
36
37
38 私用FileOutputStream写文件
39
40
41 public static void useFileOutputStream(String fileName) throws IOException{
42 File file = new File(fileName);
43
44 FileOutputStream fileOutputStream = new FileOutputStream(file);
45 fileOutputStream.write("hello fileoutputstream".getBytes());
46
47 fileOutputStream.flush();
48
49 fileOutputStream.close();
50 }
51
52
53
54 使用BufferedFileOutputStream写文件,速度最快,数据cache在jvm中,容易丢数据
55
56
57 public static void useBufferedFileOutputStream(String fileName) {
58 File file = new File(fileName);
59
60
61 BufferedOutputStream bufferedOutputStream = null;
62 try {
63 bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file));
64
65 bufferedOutputStream.write("hello BufferedFileOutputStream".getBytes());
66
67 bufferedOutputStream.flush();
68 }catch(IOException e) {
69
70
71 }finally {
72 if(bufferedOutputStream!=null) {
73 try {
74 bufferedOutputStream.close();
75 } catch (IOException e1) {
76 //TODO do something
77 }
78 }
79 }
80
81 }
82
83
84
85 使用RandomAccessFile写文件,速度最慢,直接刷盘
86
87
88 public static void useRandomAccessFile(String fileName) {
89 RandomAccessFile randomAccessFile = null;
90
91
92 try {
93 randomAccessFile = new RandomAccessFile(fileName, "rw");
94 randomAccessFile.seek(15); //从第15个byte位置开始写, 原文件的第15个之后的字符会被覆盖一部分
95 randomAccessFile.write("useRandomAccessFile".getBytes());
96 } catch (IOException e) {
97 e.printStackTrace();
98 }finally {
99 if(randomAccessFile!=null) {
try {
randomAccessFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
使用FileChannel写文件
public static void useFileChannel(String fileName) {
FileChannel fileChannel = null;
try {
FileChannel channel = new FileOutputStream(fileName).getChannel();
channel.write(ByteBuffer.wrap("useFileChannel".getBytes()));
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fileChannel!=null) {
try {
fileChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
使用MappedByteBuffer写文件,速度快,OS级别内存映射
public static void useMappedByteBuffer(String fileName){
RandomAccessFile randomAccessFile = null;
try {
randomAccessFile = new RandomAccessFile(fileName, "rw");
FileChannel fileChannel = randomAccessFile.getChannel();
String content = "useMappedByteBuffer";
MappedByteBuffer mappedByteBuffer = fileChannel.map(FileChannel.MapMode.READ_WRITE, 0, content.getBytes().length);
mappedByteBuffer.put(content.getBytes()); //mappedByteBuffer大小不能小于content的字节数
} catch (IOException e) {
e.printStackTrace();
}finally {
if(randomAccessFile!=null) {
try {
randomAccessFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
java写文件的更多相关文章
- java写文件实现换行
Java 写文件实现换行 第一种: 写入的内容中利用\r\n进行换行 File file = new File("D:/text"); try { if(!file.exist ...
- java写文件时,输出不完整的原因以及解决方法
在java的IO体系中,写文件通常会用到下面语句 BufferedWriter bo=new BufferedWriter(new FileWriter("sql语句.txt")) ...
- java 写文件解析
import java.io.File; import java.io.FileOutputStream; import java.io.*; public class FileTest { publ ...
- java写文件时,输出不完整的原因以及解决方法close()或flush()
在java的IO体系中,写文件通常会用到下面语句 BufferedWriter bw=new BufferedWriter(new FileWriter("sql语句.txt")) ...
- java写文件时往末尾追加文件(而不是覆盖原文件),的两种方法总结
代码如下: import java.io.FileWriter; import java.io.IOException; import java.io.RandomAccessFile; public ...
- java写文件读写操作(IO流,字符流)
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...
- java写文件读写操作(IO流,字节流)
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...
- java写文件的基本操作
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOExce ...
- Java 写文件实现换行
第一种: 写入的内容中利用\r\n进行换行 File file = new File("D:/text"); try { if(!file.exists()) file.creat ...
随机推荐
- Redis+Spring缓存实例
转自:小宝鸽 一.Redis了解 1.1.Redis介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).lis ...
- guid正则表达
a-fA-F0-9 加上下划线 _ 可以用 \w 来代替. ^\w{8}-(\w{4}-){3}\w{12}$ 如果不可以用下划线, 0-9 用 \d 代替 a-fA-F 就用其中一个 a-f,然后匹 ...
- Linux负载均衡软件LVS简介
Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...
- Python之路【第七篇续】:进程、线程、协程
Socket Server模块 SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端.即:每个客户端请求连接到服务器时 ...
- 在Razor中如何引入命名空间?("import namespace in razor view") 【转】
原文链接 找了半天,原来如此: 在aspx中: <%@ Import Namespace = "Martian.Areas.SFC.Models" %><%@ I ...
- CSS学习点滴
1.CSS :link 选择器 a:link { background-color:yellow;text-decoration:none } 参考:http://www.w3school.com.c ...
- PHP数组处理函数的使用array_reduce(二)
关于PHP数组操作函数更为细致的用法大家还可以参考PHP在线参考手册:http://php.net/manual/zh/index.php array_reduce — 用回调函数迭代地将数组简化为单 ...
- python 跨语言数据交互、json、pickle(序列化)、urllib、requests(爬虫模块)、XML。
Python中用于序列化的两个模块 json 用于[字符串]和 [python基本数据类型] 间进行转换 pickle 用于[python特有的类型] 和 [python基本数据类型]间进 ...
- select2搜索框查询加遍历
<div class="form-group"> <label class="control-label col-sm-1 no-padding-rig ...
- 解决label点击事件触发两次问题
问题描述: 通常,为了用户体验,我们点击单选框或者复选框后面文字,即可选中当前项.代码如下: <label> <input type="radio" name=& ...