java文件操作

 

从一个文件中读取文件内容,将文本内容。每200字到300字之间的第一个句号后面加一个换行。再写入另一个文件中。<


上面我给的程序不对
这样

Java code


package test2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedWriter mBufWriter=null;
FileWriter fileWriter = null;
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader("D:\\a.txt"));
fileWriter = new FileWriter("D:\\filetest.txt",true);
mBufWriter = new BufferedWriter(fileWriter);
String line ="";
while((line = reader.readLine()) != null){
String regex = "\\G.{29}.*?。(?!”)";
Matcher m = Pattern.compile(regex).matcher(line);
if(!m.find()){
mBufWriter.write(line);
mBufWriter.newLine();
}else{
m.reset();
while(m.find()){
String s = m.group();
mBufWriter.write(s);
mBufWriter.newLine();
}
}

}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(mBufWriter!=null){try {
mBufWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}

}

}






遇到。”的时候,就不加换行了。请问应该怎么写。

引用 9 楼 viszl 的回复:
Java code

package test2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import jav……

非常不好意思,问题1、遇到。”的时候,就不加换行了。请问应该怎么写。
  问题2、原来文本中的换行没了。
就这两个问题了。谢谢!

引用 11 楼 windwj 的回复:
遇到。”的时候,就不加换行了。请问应该怎么写。

不客气
正则改成
Java code

String regex = "\\G.{29}.*?。(?!”)";

非常非常感谢!请问原来文本中带的换行就不见了。合成一行了。请问这个怎么解决。

学习了。谢谢分享

引用 14 楼 windwj 的回复:
非常非常感谢!请问原来文本中带的换行就不见了。合成一行了。请问这个怎么解决。


Java code


package test2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedWriter mBufWriter=null;
FileWriter fileWriter = null;
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader("D:\\a.txt"));
fileWriter = new FileWriter("D:\\filetest.txt",true);
mBufWriter = new BufferedWriter(fileWriter);
String line ="";
while((line = reader.readLine()) != null){
String regex = "\\G.{29}.*?。(?!”)";
Matcher m = Pattern.compile(regex).matcher(line);
if(!m.find()){
mBufWriter.write(line);
mBufWriter.newLine();
}else{
while(m.find()){
String s = m.group();
mBufWriter.write(s);
mBufWriter.newLine();
}
}

}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(mBufWriter!=null){try {
mBufWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}

}

}



很多问题你可以自己调试的

引用 9 楼 viszl 的回复:
Java code

package test2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import jav……

再次感谢,非常不好意思。还有一个问题请教您。就是我想加一个判断。 遇到。”的时候,就是加换行了。请问应该怎么写。

Java code


package test2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedWriter mBufWriter=null;
FileWriter fileWriter = null;
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader("D:\\a.txt"));
fileWriter = new FileWriter("D:\\filetest.txt",true);
mBufWriter = new BufferedWriter(fileWriter);
String str = "";
String line ="";
while((line = reader.readLine()) != null){
str += line;
}
String regex = "\\G.{29}[^。]*?。";
Matcher m = Pattern.compile(regex).matcher(str);
while(m.find()){
String s = m.group();
mBufWriter.write(s);
mBufWriter.newLine();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(mBufWriter!=null){try {
mBufWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}

}

}




从文件读的

引用 5 楼 viszl 的回复:
Java code

package test2;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io……

非常感谢5楼的。希望能写出,从一个文本中读取后。加好换行后 再存到另一个文本中。再次感谢。

用DataInputStream的readChar
数字符数+判断字符是否为句号
完成你的功能~

每200字到300字之间的第一个句号后面加一个换行

打开文件,循环读取内存,新建文件,依次写到新的文件(判断是否符合你的条件,并进行处理);关闭文件;

Java code


package test2;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedWriter mBufWriter=null;
FileWriter fileWriter = null;


try {
fileWriter = new FileWriter("D:\\filetest.txt",true);
mBufWriter = new BufferedWriter(fileWriter);
String str = "心念及此,楚流烟心下已然明白眼前的这名应天水师将领求战心切。若是全力压制,反而容易激出难以逆料的变化来,还不如顺水推舟,就此答应了此人的要求,买一个人情给这名应天水师将领,也好以此掌控水师部众。“也好,将军既然主动请战,心迹昭昭,足见是一片血诚。只是眼下的战局虽是对于我应天水师颇有不利,不过有将军这等急公好义,勇于任事的军中柱石,国之勋臣在。哪怕汉王陈友谅麾下的汉军水师再厉害数倍,我等也可将其全力攻伐下去。";
String regex = "\\G.{29}[^。]*?。";
Matcher m = Pattern.compile(regex).matcher(str);
while(m.find()){
String s = m.group();
mBufWriter.write(s);
mBufWriter.newLine();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(mBufWriter!=null){try {
mBufWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}

}

}



LZ你第一行中“心念及此,楚流烟心下已然明白眼前的这名应天水师将领求战心切。”
这个句号时低温0个字符啊,你就换行了,所以我程序中给你写的是每行29个字符后的第一个句号换行

没有。这是用这个当例子。怕没看懂我的意思。
有这么一个问题。

引用 2 楼 windwj 的回复:
就是我有一篇小说。没有分行。如下:
心念及此,楚流烟心下已然明白眼前的这名应天水师将领求战心切。若是全力压制,反而容易激出难以逆料的变化来,还不如顺水推舟,就此答应了此人的要求,买一个人情给这名应天水师将领,也好以此掌控水师部众。“也好,将军既然主动请战,心迹昭昭,足见是一片血诚。只是眼下的战局虽是对于我应天水师颇有不利,不过有将军这等急公好义,勇于任事的军中柱石,国之勋臣在。哪怕汉王陈友谅麾下……



你得是让我给你踩小说哦

就是我有一篇小说。没有分行。如下:
心念及此,楚流烟心下已然明白眼前的这名应天水师将领求战心切。若是全力压制,反而容易激出难以逆料的变化来,还不如顺水推舟,就此答应了此人的要求,买一个人情给这名应天水师将领,也好以此掌控水师部众。“也好,将军既然主动请战,心迹昭昭,足见是一片血诚。只是眼下的战局虽是对于我应天水师颇有不利,不过有将军这等急公好义,勇于任事的军中柱石,国之勋臣在。哪怕汉王陈友谅麾下的汉军水师再厉害数倍,我等也可将其全力攻伐下去。
我希望得到的结果: 超过30字后的第一个句号后加一个换行。 换行还,从换行后再算30字后的第一个句号后再加一个换行。
结果:
心念及此,楚流烟心下已然明白眼前的这名应天水师将领求战心切。
若是全力压制,反而容易激出难以逆料的变化来,还不如顺水推舟,就此答应了此人的要求,买一个人情给这名应天水师将领,也好以此掌控水师部众。
“也好,将军既然主动请战,心迹昭昭,足见是一片血诚。只是眼下的战局虽是对于我应天水师颇有不利,不过有将军这等急公好义,勇于任事的军中柱石,国之勋臣在。
哪怕汉王陈友谅麾下的汉军水师再厉害数倍,我等也可将其全力攻伐下去。


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;


public class TestTXT {
  /**
  * 
  * @param args
  */
public static void main(String[] args) {
try {
//TestTXT.loadSomthing();
TestTXT.WriteSomthing();

} catch (IOException e) {
e.printStackTrace();
}
}
   
   
  /**
  * 
  * @throws IOException
  */ 
   
  public static void WriteSomthing() throws IOException
  {
   
  BufferedWriter mBufWriter=null;
   
  //写入文件流
  FileWriter fileWriter = new FileWriter("src/test.txt",true); 
  mBufWriter = new BufferedWriter(fileWriter); 
   
  //p判断文件是否有内容
  File file=new File("src/test.txt");
  Reader reader=null;
  reader=new InputStreamReader(new FileInputStream(file));
  if (reader.read()>0) {
System.out.println("have");
mBufWriter.newLine();
}else {
System.out.println("have no");
}  
  mBufWriter.write("sssssss撒旦发射"); 
  //让写入文件后进行换行
  mBufWriter.newLine(); 

  mBufWriter.flush(); 
  mBufWriter.close();
  }
   
  /**
  * 
  * @throws IOException
  */ 
  public static void loadSomthing() throws IOException
  {
  File file=new File("src/test.txt");
  Reader reader=null;  
  try {
reader=new InputStreamReader(new FileInputStream(file));
int indexBs;
while ((indexBs=reader.read())!=-1) {
//type elem = (type) en.nextElement();
//这里你可以换成你自己判断文件300字或者200字的 语句
System.out.print((char)indexBs);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
  }
}



我也来回答


回答即可得2分,回答被采纳则获得悬赏分以及奖励20分。 匿名回答



java文件操作 相关知识库

  • 01-22java文件操作大全发布
  • 05-16java的文件操作
  • 06-13java文件操作
  • 10-17java操作Excel文件
  • 04-02java 文件操作
  • 03-22java文件操作问题
  • 11-01java文件操作(急)
  • 04-26java文件操作大全
  • 09-09问一个java操作文件的问题。
  • 08-04java文件操作的问题
  • 05-12java对文件的操作
  • 06-22求java对文件的操作
  • 08-03JAVA 文件操作问题
  • 06-23java文件操作,在线等
  • 04-11怎么用Java操作XML文件
  • 11-18java操作openoffice的ods文件问题
  • 09-12关于Java操作二进制文件的问题 急!急!急
  • 07-18关于JAVA的随机文件操作
  • 06-30请问下java怎样操作局域网内的同享文件,并将文件转移
  • 03-08java对文件操作
  • 01-12有谁用JAVA操作过PDW文件?
  • 07-10求高手!!!!java对execl文件的操作
  • 11-25java怎么生成或操作vf的fpt文件
  • 03-24java或c#操作gpib-32.dll文件犯错
  • 02-03求高人解惑java操作csv文件
  • 09-27java 对紧缩文件操作的问题
  • 07-07java 操作excel,文件复制
  • 03-27Java对Properties文件的读写操作.
  • 05-13java在linux下对文件操作有问题
  • 02-17在AIX下,Java怎样操作word文件的域?
php知识库
 
php教程   php168   php100   phpnow   php源码   php mysql   php视频  php图片下载  php正则
绿色php资源
  • 网站开发
  • 数据库开发
  • 开发工具
  • Linux/unix
  • .Net技术
  • Java技术
  • 开发语言
  • Windows专区
Copyright © 2009-2012 phpzyphp资源 绿色php资源 版权所有
PHPZY Website Powered by DedeCMS For PHPZY
豫ICP备07013246号