java写入txt
⑴ 如何用java写入txt,每次运行都覆盖前一次的内容(多行数据)
你把FileOutputStream out = new FileOutputStream(file, true);这里的true改为false或者不写,
当有true修饰时代表当该文件已经存在时在文件后继续写
而当为false或缺省时,若该文件名已经存在则会覆盖原文件
⑵ java 写入txt文件的中文乱码是怎么回事
原因是写入时使用的字符编码和期望的不一致导致的。
⑶ java读取、修改、写入txt文件
模拟:先创建一个TXT文件(内容来自控制台);然后读取文件并在控制台输出;最后实现对新创建的TXT文件(的数据进行排序后)的复制。分别对应三个函数,调用顺序需要注意:创建、读取、复制。
效果图如下:绿色部分为控制台输入的内容(当输入end时,结束)
packagecom.;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.util.Arrays;
importjava.util.Scanner;
importjava.util.Vector;
publicclassCreateAndReadTxt{
//文件名称
publicstaticStringfileName=".txt";
publicstaticStringnewFileName=".txt";
//文件路径
publicfinalstaticStringURL=System.getProperty("user.dir");
//CreateAndReadTxt.class.getResource("/").getPath();
//创建TXT文件
publicstaticvoidcreateTxtFile(StringfName,StringfileContent){
//创建文件
fileName=fName+fileName;
Filefile=newFile(fileName);
//可以更改
file.setWritable(true);
//判断当前路径下是否存在同名文件
booleanisExist=file.exists();
if(isExist){
//文件存在,删除
file.delete();
}
//写入文件
try{
//文件写入对象
FileOutputStreamfos=newFileOutputStream(file);
//输入流写入----默认字符为GBK
OutputStreamWriterosw=newOutputStreamWriter(fos);
//写入
osw.write(fileContent);
//写入完毕后关闭
osw.close();
System.out.println("成功创建文件: "+fileName);
}catch(IOExceptione){
System.out.println("写入文件失败: "+e.getMessage());
}
}
//阅读文件
publicstaticvoidreadFile(StringfileName){
System.out.println("开始读取文件: "+fileName);
//产生文件对象
Filefile=newFile(fileName);
//
try{
//字符读取
FileReaderfr=newFileReader(file);
//缓冲处理
BufferedReaderbr=newBufferedReader(fr);
Stringstr="";
while((str=br.readLine())!=null){
System.out.println(str);
}
//关闭
br.close();
fr.close();
}catch(FileNotFoundExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}catch(IOExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}
}
//文件复制
publicstaticvoidFile(StringfromFileName,StringtoFileName){
//读取文件
Filefile=newFile(fromFileName);
try{
FileReaderfr=newFileReader(file);
BufferedReaderbr=newBufferedReader(fr);
//定义接收变量
Vector<Double>vec=newVector<Double>();
Strings="";
while(null!=(s=br.readLine())){
vec.add(Double.parseDouble(s));
}
br.close();
fr.close();
//保存到数组并进行排序
Doubledou[]=newDouble[vec.size()];
vec.toArray(dou);
Arrays.sort(dou);
System.out.println("========复制文件=========");
//写入新文件
newFileName="副本"+newFileName;
FilenewFile=newFile(toFileName);
FileOutputStreamfos=newFileOutputStream(newFile,true);
OutputStreamWriterosm=newOutputStreamWriter(fos);
for(Doubled:dou){
osm.write(d.doubleValue()+"
");
}
osm.close();
fos.close();
}catch(FileNotFoundExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}catch(IOExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}
}
publicstaticvoidmain(String[]args){
/**
*构造数据
*/
Scannerscan=newScanner(System.in);
StringBuildersb=newStringBuilder();
Strings="";
while(!("end".equals(s=scan.next()))){//当输入end时,结束
sb.append(s);
sb.append("
");
}
scan.close();
/**
*使用数据
*/
CreateAndReadTxt.createTxtFile("creat",sb.toString());
CreateAndReadTxt.readFile(fileName);
System.out.println(fileName);
CreateAndReadTxt.File(fileName,newFileName);
CreateAndReadTxt.readFile(newFileName);
}
}
⑷ Java往TXT文件写入文字的问题
代码如下:
File file4 = new File("FileTextCopy2.java");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入内容:\n");
try {
String happyString ;
BufferedWriter writer = new BufferedWriter(FileWriter(file4));
while(!(happyString=in.readLine()).equalsIgnoreCase("exit")){
System.out.println("您输入的内容是:\""+happyString+"\",正在存储中");
writer.write(happyString+"\n");
writer.flush();
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
写入文件的时候最好也用带缓冲的方法,对提升程序效率有帮助。
如果希望马上看到写入的效果,就执行一下flush,强制将内容立即写入文件
”修改建议
回答含有复制内容
咦?您的答案和别的答案长的太像了,简直就是双胞胎,其实….分享自己的原创知识才是件最有性格的事,快去修改自己的回答吧。“
。。。原来的答案是对的,新的代码只是改进了缓冲写入和调用flush的位置
⑸ java 怎么将数据写入TXT文件
定义一个输出文件,然后输出就可以了,具体见下面的代码
importjava.io.*;
publicclassStreamDemo
{
publicstaticvoidmain(Stringargs[])
{
Filef=newFile("c:\temp.txt");
OutputStreamout=null;
try
{
out=newFileOutputStream(f);
}
catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
//将字符串转成字节数组
byteb[]="HelloWorld!!!".getBytes();
try
{
//将byte数组写入到文件之中
out.write(b);
}
catch(IOExceptione1)
{
e1.printStackTrace();
}
try
{
out.close();
}
catch(IOExceptione2)
{
e2.printStackTrace();
}//以下为读文件操作
InputStreamin=null;
try
{
in=newFileInputStream(f);
}
catch(FileNotFoundExceptione3)
{
e3.printStackTrace();
}
//开辟一个空间用于接收文件读进来的数据
byteb1[]=newbyte[1024];
inti=0;
try
{
//将b1的引用传递到read()方法之中,同时此方法返回读入数据的个数
i=in.read(b1);
}
catch(IOExceptione4)
{
e4.printStackTrace();
}
try
{
in.close();
}
catch(IOExceptione5)
{
e5.printStackTrace();
}
//将byte数组转换为字符串输出
System.out.println(newString(b1,0,i));
}
}