java中使用FileWriter流java写入文件换行数据,只能写一部分,什么原因,求解答

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(26985)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_094069',
blogTitle:'java在指定路径下创建文件,并写入文件内容',
blogAbstract:'package com.\r\nimport java.io.BufferedRimport java.io.BufferedWimport java.io.Fimport java.io.FileNotFoundEimport java.io.FileRimport java.io.FileWimport java.io.IOE\r\npublic class Test {&public static void main(String[] args) {&&String lujing = \"d:\\\\test\\\\ss\\\\ss.txt\";&&File file = new File(lujing);',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:6,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}java使用BufferedWriter写文件 - 为程序员服务
为程序员服务
java使用BufferedWriter写文件
当要写文本文件时最好使用Writer类,而不是直接写OutputStream;因为Writer类就是为写文本而设计的。
使用BufferedWriter写入文本时不用讲文本转换成字节数组。在下面的示例代码中我们向文件中写入两行文本。
import java.io.BufferedW
import java.io.FileNotFoundE
import java.io.FileW
import java.io.IOE
* @author outofmemory.cn
public class Main {
* Prints some data to a file using a BufferedWriter
public void writeToFile(String filename) {
BufferedWriter bufferedWriter =
//Construct the BufferedWriter object
bufferedWriter = new BufferedWriter(new FileWriter(filename));
//Start writing to the output stream
bufferedWriter.write(&Writing line one to file&);
bufferedWriter.newLine();
bufferedWriter.write(&Writing line two to file&);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
//Close the BufferedWriter
if (bufferedWriter != null) {
bufferedWriter.flush();
bufferedWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
* @param args the command line arguments
public static void main(String[] args) {
new Main().writeToFile(&myFile.txt&);
执行上述代码后文件中的文本如下:
Writing line one to file
Writing line two to file
注意使用BufferedWriter一定要在finally中flush()并close().
您可能的代码
相关聚客文章
荣誉:1400
相关专栏文章&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Java在硬盘上创建一个文件并写入一些文字数据FileWriter
摘要:字符流和字节流:字节流两个基类:InputStreamOutputStream字符流两个基类:ReaderWriter先学习一下字符流的特点。既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件。那么先以操作文件为主来演示。需求:在硬盘上创建一个文件并写入一些文字数据。找到一个专门用于操作文件的Writer子类对象。FileWriter。后缀名是父类名。前缀名是该流对象的功能。importjava.io.*;classFileWriterDemo{publicstat
字符流和字节流:字节流两个基类:
InputStreamOutputStream字符流两个基类:
Reader Writer先学习一下字符流的特点。既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件。那么先以操作文件为主来演示。需求:在硬盘上创建一个文件并写入一些文字数据。
找到一个专门用于操作文件的Writer子类对象。FileWriter。 后缀名是父类名。 前缀名是该流对象的功能。
import java.io.*;classFileWriterDemo{ public static void main(String[] args) throws IOException { //创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。 //而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。 //其实该步就是在明确数据要存放的目的地。 FileWriter fw = new FileWriter(&demo.txt&); //调用write方法,将字符串写入到流中。 fw.write(&abcde&); //刷新流对象中的缓冲中的数据。 //将数据刷到目的地中。 //fw.flush(); //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。 //将数据刷到目的地中。 //和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。 fw.close(); }}——摘自《毕向东25天》
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Java在硬盘上创建一个文件并写入一些文字数据FileWriter相关信息,包括
的信息,所有Java在硬盘上创建一个文件并写入一些文字数据FileWriter相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International记住登录一个月发表随想还能输入:200字该用户最新代码编程随想&by by by by by by [java]代码库
import java.io.BufferedR
import java.io.F
import java.io.FileW
import java.io.IOE
import java.io.InputStreamR
import java.io.PrintW
* 从标准输入流中读取数据,并存储到文件中
public class CatStdinToFile {
public static boolean catStdinToFile(String fileName){
File file = new File(fileName);
//将数据按照文本输出到文件
PrintWriter writer =
BufferedReader in =
//为输出文件建立一个写入器
writer = new PrintWriter(new FileWriter(file));
System.out.println("请输入文件内容,输入quit结束");
//用BufferedReader包装标准输入流
in = new BufferedReader(new InputStreamReader(System.in));
String inputLine =
while (((inputLine = in.readLine( )) != null) && (!inputLine.equals("quit"))) {
writer.println(inputLine);
//如果采用new PrintWriter(new FileWriter(file), true)则会自动flush。
writer.flush();
writer.close();
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
if (in != null){
in.close();
} catch (IOException e) {
e.printStackTrace();
public static void main(String[] args) {
String fileName = "C:/temp/temp.java";
CatStdinToFile.catStdinToFile(fileName);
System.out.println();
System.out.println("输出文件的内容:");
ReadFromFile.readFileByLines(fileName);
分享到:更多发表评论:评论须知:1、评论每次加2分,每天上限为30;2、请文明用语,共同创建干净的技术交流环境;3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。做为一个Android开发人员。首先得基于java开发,在开发过程中,越来越觉得java带给我们的好处。而对于java的需要也越来越深。今天就来学习下java的流。
本文参考 深入理解java中的流
首先,要先明确流的概念:
流是一个抽象的概念。是对输入输出设备的抽象。Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。
可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。
当程序需要从某个数据源读入数据的时候,就会开启一个输入流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个输出流,这个数据源目的地也可以是文件、内存或网络等等。
流有哪些分类?
可以从不同的角度对流进行分类:
处理的数据单位不同,可分为:字符流,字节流
2.数据流方向不同,可分为:输入流,输出流
3.功能不同,可分为:节点流,处理流
和 2. 都比较好理解,对于根据功能分类的,可以这么理解:
节点流:节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流,例如FileInputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。
处理流:“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。过滤流是使用一个已经存在的输入流或输出流连接创建的,过滤流就是对节点流进行一系列的包装。例如BufferedInputStream和BufferedOutputStream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及DataInputStream和DataOutputStream,使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。他们都属于过滤流。
举个简单的例子:
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream = new FileOutputStream("A.txt");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
fileOutputStream);
DataOutputStream out = new DataOutputStream(bufferedOutputStream);
out.writeInt(3);
out.writeBoolean(true);
out.flush();
out.close();
DataInputStream in = new DataInputStream(new BufferedInputStream(
new FileInputStream("A.txt")));
System.out.println(in.readInt());
System.out.println(in.readBoolean());
in.close();
流结构介绍:
Java所有的流类位于java.io包中,都分别继承自以下四种抽象流类型。
InputStream
OutputStream
1.继承自InputStream/OutputStream的流都是用于向程序中输入/输出数据,且数据的单位都是字节(byte=8bit),如图,深色的为节点流,浅色的为处理流。
2.继承自Reader/Writer的流都是用于向程序中输入/输出数据,且数据的单位都是字符(2byte=16bit),如图,深色的为节点流,浅色的为处理流。
常见流类介绍:
节点流类型常见的有:
对文件操作的字符流有FileReader/FileWriter,字节流有FileInputStream/FileOutputStream。
处理流类型常见的有:
缓冲流:缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写效率,同时增加了一些新的方法。
  字节缓冲流有BufferedInputStream/BufferedOutputStream,字符缓冲流有BufferedReader/BufferedWriter,字符缓冲流分别提供了读取和写入一行的方法ReadLine和NewLine方法。
  对于输出地缓冲流,写出的数据,会先写入到内存中,再使用flush方法将内存中的数据刷到硬盘。所以,在使用字符缓冲流的时候,一定要先flush,然后再close,避免数据丢失。
转换流:用于字节数据到字符数据之间的转换。
  仅有字符流InputStreamReader/OutputStreamWriter。其中,InputStreamReader需要与InputStream“套接”,OutputStreamWriter需要与OutputStream“套接”。
数据流:提供了读写Java中的基本数据类型的功能。
  DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,需要“套接”在InputStream和OutputStream类型的节点流之上。
对象流:用于直接将对象写入写出。
  流类有ObjectInputStream和ObjectOutputStream,本身这两个方法没什么,但是其要写出的对象有要求,该对象必须实现Serializable接口,来声明其是可以序列化的。否则,不能用对象流读写。
  还有一个关键字比较重要,transient,由于修饰实现了Serializable接口的类内的属性,被该修饰符修饰的属性,在以对象流的方式输出的时候,该字段会被忽略。
上面一大段都是讲的java中流的一些必须要知道的常识,但是在Android中是怎么利用java流进行文件的存储以及读取的呢,Context 类中提供了一个openFileOutput ()方法,可以用于将数据存储到指定的文件中。
第二个参数是文件的操作模式, 主要有两种模式可选,
MODE_PRIVATE 和MODE_APPEND。其中MODE_PRIVATE 是默认的操作模式,表示当指
定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而MODE_APPEND 则表示
如果该文件已存在就往文件里面追加内容,不存在就创建新文件
public void save() {
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
writer.close();
} catch (IOException e) {
e.printStackTrace();
上面就是一个简单的讲字符串保存到文件中的实例。
下面我们来看看怎么从文件中读取数据:
类似于将数据存储到文件中,Context 类中还提供了一个openFileInput()方法,用于从文
件中读取数据。这个方法要比openFileOutput()简单一些,它只接收一个参数,即要读取的文
件名,然后系统会自动到/data/data//files/目录下去加载这个文件,并返回一个
FileInputStream 对象,得到了这个对象之后再通过Java 流的方式就可以将数据读取出来了。
以下是一段简单的代码示例,展示了如何从文件中读取文本数据:
public String load() {
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
content.append(line);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
} catch (IOException e) {
e.printStackTrace();
return content.toString();
在这段代码中,首先通过openFileInput()方法获取到了一个FileInputStream 对象,然后
借助它又构建出了一个InputStreamReader 对象,接着再使用InputStreamReader 构建出一个
BufferedReader 对象,这样我们就可以通过BufferedReader 进行一行行地读取,把文件中所
有的文本内容全部读取出来并存放在一个StringBuilder 对象中,最后将读取到的内容返回就
文件存储的方式并不适合用于保存一些较为复杂的文本数据。
FileInputStream类可以通过一个String路径名创建一个对象,FileInputStream(String name)。而DataInputStream必须装饰一个类才能返回一个对象,DataInputStream(InputStream in)。
了解更多请参考:
文件读写和流
文件读写流学习总结
java IO流的概念与分类
Java中对文件的读写操作
java普通io(stream)处理文件读写的过程
React实现java输出流的下载
通过流实现文件读写的方法(上)
没有更多推荐了,

我要回帖

更多关于 java将字符串写入文件 的文章

 

随机推荐