向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)
!!!!
读取txt文件中的内容
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- /**
- * 2016年05月11日
- * 本类模拟从txt文件读取内容的过程
- * @author WuJieJecket
- *
- */
- public class PrintFromTxt {
- public static void main(String[] args) throws Exception {
- //读取全部文件内容
- File file = new File("d:\\a\\123.txt");
- StringBuilder sb = new StringBuilder();
- String s ="";
- BufferedReader br = new BufferedReader(new FileReader(file));
- while( (s = br.readLine()) != null) {
- sb.append(s + "\n");
- }
- br.close();
- String str = sb.toString();
- System.out.println(str);
- }
- }
!!!向文件中写入内容-如果指定文件不存在,会被创建
在main方法中使用if做判断,是否运行测试方法,测试方法有四个,FileOutputStream与FileWriter都是写入到txt文件,区别是后者先写在缓存,清缓存或者缓存已满才会最终把内容放入到txt中。
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- /**
- * 2016年05月11日
- * 本类模拟将字符串写入到txt文件的过程
- * @author WuJieJecket
- *
- */
- public class WriteToTxt {
- public static void main(String[] args) throws FileNotFoundException {
- //要写入到文件中的内容 \r是换行
- String str1="\r张三1 0 3000\r李四1 1 5000\r王五1 0 4000";
- String str2="\r张三2 0 3000\r李四2 1 5000\r王五2 0 4000";
- String str3="\r张三3 0 3000\r李四3 1 5000\r王五3 0 4000";
- String str4="\r张三4 0 3000\r李四4 1 5000\r王五4 0 4000";
- WriteToTxt wtt=new WriteToTxt();
- //FileWriter-缓存写入-字符-覆盖重写
- if(!true){
- wtt.FileWriterTest(str1);
- }
- //FileOutputStream-直接写入-字节-覆盖重写
- if(!true){
- wtt.FileOutputStreamTest(str2);
- }
- //FileWriter-缓存写入-字符-末尾续接
- if(!true){
- wtt.FileWriterTest2(str3);
- }
- //FileOutputStream-直接写入-字节-末尾续接
- if(!true){
- wtt.FileOutputStreamTest2(str4);
- }
- }
- /*
- * 写文件
- * 覆盖重写
- * FileWriter
- * 先写在缓存中,需要flush
- * 字符 eg:1,2,a,b
- */
- public void FileWriterTest(String str){
- FileWriter writer;
- try {
- // writer = new FileWriter("/home/1.txt");
- writer = new FileWriter("d:\\a\\1231.txt");
- writer.write(str);
- writer.flush(); //这一个比较重要,是清理缓存的过程,之后需要写入的信息被写到txt文件中
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /*
- *写文件
- *覆盖重写
- *FileOutputStream
- *直接写入到文件中,不存在缓存
- *字节 byte
- */
- public void FileOutputStreamTest(String str){
- FileOutputStream fos;
- try {
- fos=new FileOutputStream("d:\\a\\1232.txt");
- fos.write(str.getBytes());
- fos.close();
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /*
- * 写文件
- * 末尾续接
- * FileWriter
- * 先写在缓存中,需要flush
- * 字符 eg:1,2,a,b
- */
- public void FileWriterTest2(String str){
- FileWriter writer;
- try {
- // writer = new FileWriter("/home/1.txt");
- writer = new FileWriter("d:\\a\\1233.txt",true);
- writer.write(str);
- writer.flush(); //这一个比较重要,是清理缓存的过程,之后需要写入的信息被写到txt文件中
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /*
- *写文件
- *末尾续接
- *FileOutputStream
- *直接写入到文件中,不存在缓存
- *字节 byte
- */
- public void FileOutputStreamTest2(String str){
- FileOutputStream fos;
- try {
- fos=new FileOutputStream("d:\\a\\1234.txt",true);
- fos.write(str.getBytes());
- fos.close();
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
txt的按行、列读
http://blog.csdn.net/bestcxx/article/details/65446489
最后附上自己写的一个封装好的方法,可以直接使用,不会覆盖原文件(即末尾续接)
package com.zhaowu.renwu2; import java.io.File;
import java.io.FileWriter;
import java.io.IOException; public class FileUtil {
public static void toFile (String content) {
File file = null;
FileWriter fw = null;
file = new File("/home/acer/桌面/aaa");
try {
if (!file.exists()) {
file.createNewFile();
}
fw = new FileWriter(file,true);
fw.write(content);//向文件中复制内容
fw.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw != null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)的更多相关文章
- 爬虫出现Forbidden by robots.txt(转载 https://blog.csdn.net/zzk1995/article/details/51628205)
先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决. 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息F ...
- 虚拟机中的CentOS7如何上网?---https://blog.csdn.net/nothing2017/article/details/61420767
虚拟机中的CentOS7如何上网?https://blog.csdn.net/nothing2017/article/details/61420767
- 如何简单地理解Python中的if __name__ == '__main__'(https://blog.csdn.net/yjk13703623757/article/details/77918633)
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- GDAL中文件的驱动及对应的文件格式(转) https://blog.csdn.net/haojknm/article/details/5851968
GDALDriver * poDriver; char *pszFormat=GetOutimgInfo(m_strInput); poDriver = GetGDALDriverManager()- ...
- 重载与重写的区别----https://blog.csdn.net/zhu_apollo/article/details/1852542
重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. ...
- 通信中的错误代码 (repost from https://blog.csdn.net/zzhuan_1/article/details/80066716)
• 100 - 继续.• 101 - 切换协议.• 110 重新启动标记答复.• 120 服务已就绪,在 nnn 分钟后开始.• 125 数据连接已打开,正在开始传输.• 150 文件状态正常,准备打 ...
- git中利用rebase来压缩多次提交 ----- 原文:https://blog.csdn.net/itfootball/article/details/44154121
之前我们用git merge –squash来将分支中多次提交合并到master后,只保留一次提交历史.但是有些提交到github远程仓库中的commit信息如何合并呢? 使用下面的命令,最后一个数字 ...
- OpenGL学习脚印: uniform blocks在着色器中的使用 转自https://blog.csdn.net/wangdingqiaoit/article/details/52717963
写在前面 目前,我们在着色器中要传递多个uniform变量时,总是使用多个uniform,然后在主程序中设置这些变量的值:同时如果要在多个shader之间共享变量,例如投影矩阵projection和视 ...
- golang中defer的详解 转自https://blog.csdn.net/skh2015java/article/details/77081250
Go里的defer很有用,尤其在很多执行模块化操作时,初始化时给各个需要执行的模块传入参数,但是这些参数有些事在模块执行过程中才赋值的. 这时候有了defer就不会把代码写的很凌乱. Go的defer ...
随机推荐
- java @override 报错处理
转载自:http://blog.sina.com.cn/s/blog_9c7605530101kl9r.html 一.java @override 报错处理 做项目的时候,同事那边电脑上编译通过的ja ...
- Effective C++:条款39:明智而审慎地使用private继承
(一) (1)private继承意味着"依据某物实现出".仅仅有实现部分被继承.接口部分应略去: (2)它仅仅在软件"实现"层面上有意义,在软件"设计 ...
- Mock数据使用的Util
package com.xxx.common.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import ...
- mybatis之高级结果映射
先贴一句官方文档内容 如果世界总是这么简单就好了. 正如官方文档所说:如果一切都是这么简单,那该多好啊,但是实际上,我们面对的是复杂的对象,就是对象里有对象,有列表对象,总之五花八门的对象.这个时候我 ...
- [Tips]Fix node.js addon build error: "gyp: binding.gyp not found"
基于node-gyp写Node.js native addon的时候,碰到一个很恶心的问题. 调用“node-gyp configure”能成功,再调用“node-gyp”时总会报错,最后发现时系统时 ...
- Social Network 社交网络分析
Social Network 社交网络分析 一:什么是SNA-社交网络分析 社交网络分析的威力何在?我想几个案例来说明. 案例1:对一个毫无了解的组织(这个组织可以是一个公司,亦或是一个组织),如果能 ...
- herf 和 src 的区别
1.herf 表示超文本引用(hypertext reference),指向网络资源所在位置,建立和当前元素( 锚点)或当前文档(链接)之间的链接,如果我们在文档中添加 <link href=& ...
- Sublime Text 格式化代码快捷键
首选项->按键绑定-用户 加入代码: {"keys": ["ctrl+alt+j"], "command": "reinde ...
- dropload 使用表
移动端下拉刷新.上拉加载更多插件 依赖 (dependence) Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用) Zepto or jQuery 1. ...
- 54、Android 粒子效果之雨(下雨的效果)
核心内容: 1.绘制下雨场景的个体.雨点(直线) 2.让直线动起来 3.处理边界问题 4.构造雨点对象 5.雨点大小设置 6.速度设置和角度设置等 7.添加多个雨点 8.抽离可以在 XML 中影响的属 ...