关于java编辑txt的信息

博主:adminadmin 2022-11-27 05:36:07 54

本篇文章给大家谈谈java编辑txt,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 中怎么修改txt文件中某一行的内容

用临时文件,按行读源文件,不修改的行,直接输出到临时文件、要修改的行在修改后,再写到临时文件

求java操作txt文件的方法

/**

 * @date:2015年5月11日 上午9:58:42

 * @Description:读取指定行内容,不包括空行

 * @param n

 * @return

 */

public String _read(int n) throws Exception {

ListString list = new ArrayListString();

BufferedReader b = null;

File file = new File("C:\\Users\\Administrator\\Desktop\\远程调用.txt");

b = new BufferedReader(new FileReader(file));

String line = null;

while ((line = b.readLine()) != null) {

if (!line.equals("")) {

list.add(line);

}

}

b.close();

return list.get(n - 1);

}

/** 

* @date:2015年5月11日 上午11:54:16

* @Description:修改指定行的指定数组内容

* @param n

* @param str

* @throws Exception 

*/ 

public void _change(int n, String[] str) throws Exception {

File file = new File("C:\\Users\\Administrator\\Desktop\\远程调用.txt");

BufferedReader b=new BufferedReader(new FileReader(file));

StringBuffer sb = new StringBuffer();

StringBuffer sb1= new StringBuffer();

for (int i = 0; i  str.length; i++) {

sb.append(str[i]);

}

String line = null;

int index=1;

while ((line = b.readLine()) != null) {

if (!line.equals("")index!=n) {

sb1.append(line);

sb1.append(System.getProperty("line.separator"));

index++;

}else if(!line.equals("")index==n){

sb1.append(sb.toString());

sb1.append(System.getProperty("line.separator"));

index++;

}

}

b.close();

    BufferedWriter bw = new BufferedWriter(new FileWriter(file));

    bw.write(sb1.toString());

bw.close();

}

java读取、修改、写入txt文件

模拟:先创建一个TXT文件(内容来自控制台);然后读取文件并在控制台输出;最后实现对新创建的TXT文件(的数据进行排序后)的复制。分别对应三个函数,调用顺序需要注意:创建、读取、复制。

效果图如下:绿色部分为控制台输入的内容(当输入end时,结束)

代码如下:

package com.baidu;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.util.Arrays;

import java.util.Scanner;

import java.util.Vector;

public class CreateAndReadTxt {

// 文件名称

public static String fileName = ".txt";

public static String newFileName = ".txt";

// 文件路径

public final static String URL = System.getProperty("user.dir");

// CreateAndReadTxt.class.getResource("/").getPath();

// 创建TXT文件

public static void createTxtFile(String fName, String fileContent) {

// 创建文件

fileName = fName + fileName;

File file = new File(fileName);

// 可以更改

file.setWritable(true);

// 判断当前路径下是否存在同名文件

boolean isExist = file.exists();

if (isExist) {

// 文件存在,删除

file.delete();

}

// 写入文件

try {

// 文件写入对象

FileOutputStream fos = new FileOutputStream(file);

// 输入流写入----默认字符为GBK

OutputStreamWriter osw = new OutputStreamWriter(fos);

// 写入

osw.write(fileContent);

// 写入完毕后关闭

osw.close();

System.out.println("成功创建文件:\t"+fileName);

} catch (IOException e) {

System.out.println("写入文件失败:\t" + e.getMessage());

}

}

// 阅读文件

public static void readFile(String fileName) {

System.out.println("开始读取文件:\t" + fileName);

// 产生文件对象

File file = new File(fileName);

//

try {

// 字符读取

FileReader fr = new FileReader(file);

// 缓冲处理

BufferedReader br = new BufferedReader(fr);

String str = "";

while ((str = br.readLine()) != null) {

System.out.println(str);

}

// 关闭

br.close();

fr.close();

} catch (FileNotFoundException e) {

System.out.println("读取文件失败:\t" + e.getMessage());

} catch (IOException e) {

System.out.println("读取文件失败:\t" + e.getMessage());

}

}

// 文件复制

public static void copyFile(String fromFileName,String toFileName){

//读取文件

File file = new File(fromFileName);

try {

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

// 定义接收变量

VectorDouble vec = new VectorDouble();

String s = "";

while(null!=(s=br.readLine())){

vec.add(Double.parseDouble(s));

}

br.close();

fr.close();

// 保存到数组并进行排序

Double dou[] = new Double[vec.size()];

vec.toArray(dou);

Arrays.sort(dou);

System.out.println("========复制文件=========");

// 写入新文件

newFileName = "副本"+newFileName;

File newFile = new File(toFileName);

FileOutputStream fos = new FileOutputStream(newFile, true);

OutputStreamWriter osm = new OutputStreamWriter(fos);

for(Double d:dou){

osm.write(d.doubleValue()+"\n");

}

osm.close();

fos.close();

} catch (FileNotFoundException e) {

System.out.println("读取文件失败:\t" + e.getMessage());

} catch (IOException e) {

System.out.println("读取文件失败:\t" + e.getMessage());

}

}

public static void main(String[] args) {

/**

 * 构造数据

 */

Scanner scan = new Scanner(System.in);

StringBuilder sb = new StringBuilder();

String s = "";

while(!("end".equals(s = scan.next()))){// 当输入end时,结束

sb.append(s);

sb.append("\n");

}

scan.close();

/**

 * 使用数据

 */

CreateAndReadTxt.createTxtFile("creat", sb.toString());

CreateAndReadTxt.readFile(fileName);

System.out.println(fileName);

CreateAndReadTxt.copyFile(fileName, newFileName);

CreateAndReadTxt.readFile(newFileName);

}

}

java如何读取并修改txt文件

Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法。Writer中 write(),flush()和close()方法为抽象方法。子类应该分别实现他们。

Java IO已经为我们提供了三个方便的Reader的实现类,FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等。

FileReader读txt文件例子

FileReader fr = new FileReader("D:/Test.txt");

int ch = 0;

while((ch = fr.read())!=-1 ){

System.out.print( (char)ch );

}

其中read()方法返回的是读取得下个字符。

InputStreamReader读txt文件例子

InputStream is = new FileInputStream(new File("D:/Test.txt"));

InputStreamReader fr = new InputStreamReader(is);

int ch = 0;

while((ch = fr.read())!=-1 ){

System.out.print((char)ch);

}

这和FileReader并没有什么区别,事实上在FileReader中的方法都是从InputStreamReader中继承过来的。 read()方法是比较好费时间的,如果为了提高效率,我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用 readLine()方法。

BufferedReader br = new BufferedReader(new FileReader("Test.txt")));

String data = br.readLine();//一次读入一行,直到读入null为文件结束

while( data!=null){

System.out.println(data);

data = br.readLine(); //接着读下一行

}

当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。

有读就有写,写文本文件可以使用PrintWriter,FileWriter,BufferedWriter。

FileWriter fw = new FileWriter("D:/Test.txt");

String s = "hello world";

fw.write(s,0,s.length());

fw.flush();

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:/Test1.txt"));

osw.write(s,0,s.length());

osw.flush();

PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:/Test2.txt")),true);

pw.println(s);

fw.close();

osw.close();

pw.close();

如果想接着写入某个文件。 声明时FileWriter fw = new FileWriter("log.txt",true);加个true就可以了。

File file = new File("D:/Test.txt");

File dest = new File("D:/new.txt");

try {

BufferedReader reader = new BufferedReader(new FileReader(file));

BufferedWriter writer = new BufferedWriter(new FileWriter(dest));

String line = reader.readLine();

while(line!=null){

writer.write(line);

line = reader.readLine();

}

writer.flush();

reader.close();

writer.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

java怎么来修改txt中的内容?

public class update_txt {

public static void main(String[] args) {

File file = new File("D:\\update_txt.txt");

try

{

if(file.isFile()!=true)

{

file.createNewFile();

}

//读入数据

BufferedReader buff = new BufferedReader(new FileReader(file));

String manager = buff.readLine();

Vector newtxt = new Vector();

while(manager!=""manager!=null)

{

System.out.println(manager);

if(manager.split("#")[0].equals("admin3"))

{

newtxt.add("admin3#3#超级管理员");

}

else

{

newtxt.add(manager);

}

manager=buff.readLine();

}

buff.close();

//写入数据

BufferedWriter weiter = new BufferedWriter(new FileWriter(file));

for(int i=0;inewtxt.size();i++)

{

weiter.write(newtxt.get(i).toString());

weiter.newLine();

}

weiter.flush();

weiter.close();

}catch(Exception e)

{

e.printStackTrace();

}

}}

java处理txt文件

分别读取两个文件

String[] s1 = new String[] { "1,admin", "2,manager", "3,qyi" };//假设这是第一个文件

String[] s2 = new String[] { "SN222,admin", "SN33,manager","SN0982,qyi" };//第二个文件的内容

ListString l = new ArrayListString();//比较组合后的结果集

for (int i = 0; i s1.length; i++) {//取第一文件的每一个对象与第二文件的每一个对象

String[] ss1 = s1[i].split(",");

for (int j = 0; j s2.length; j++) {

String[] ss2 = s2[j].split(",");

if(ss2[1].equals(ss1[1])){//根据用户名进行比较,如果相同的话就进行字符串拼接,然后放到结果集当中,

l.add(ss1[0]+","+ss2[0]+","+ss1[1]);

continue;//跳出内循环

}

}

}

for(String s : l){//打印结果集(可以在这里将结果集写入到新的文件当中去)

System.out.println(s);

}

java编辑txt的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java编辑txt的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。