txt怎么txt转换java成java

java文件输出流,写到.txt文件,如何实现换行_百度知道
java文件输出流,写到.txt文件,如何实现换行
提问者采纳
);\n&quot。针对常用的系统;aaa&quot,可以使用如下的转义符实现换行;n&quot:&#92.getProperty()方法; bw.separator&quot.使用java中的转义符&c;\+S 这样在str后面就有换行了.注意; str+=&);\rMac下的文本文件换行符;java&quot:Java代码 String str = &r\你好& BufferedWriter bw=new BufferedWriter(fos):windows和linux/;r&#92.newline();n的顺序是不能够对换的:&#92:Java代码 String str=&quot,&#92.txt&quot.write(& 3;); bw,否则不能实现换行的效果.2:windows下的文本文件换行符;unix下的文本文件换行符;:Java代码 FileOutputStream fos=new FileOutputStream(&quot:\11;&#92.write(& 后记;).使用Snlinux/aaa&quot.getProperty(&unix平台中应该没有通用的换行符的;r1;.BufferedWriter的newline()方法.newline():\r&#92
其他类似问题
txt文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁RTF转HTML,HTML转TXT(Java版) - javasogo - ITeye技术网站
想要做一个RTF转换TXT的代码,找了一圈,好不容易找了个折中的方法,先转HTML,然后提取HTML中的纯文本部分,下面把整个方法介绍一下。
一、第三方开发包
先简单介绍一下RTF格式相关的内容,摘自百度百科:
作为微软公司的标准文件,早期外间需要数十美元向微软付款,才能购买一本薄薄的RTF标准文件。不过随着采用RTF格式标准的软件愈来愈多,RTF格式也愈来愈普遍,微软公司就把标准文件公开,放在网上供开发者下载。现时可供下载的各个RTF版本标准文件如下:
  RTF 1.9.1 specification (March 2008)
  RTF 1.8 specification (April 2004)
  RTF 1.6 specification (May 1999)
  RTF 1.5 specification (April 1997)
  RTF 1.3 and 1.5 specifications
  RTF 1.0 specification (June 1992)
  RTF格式是许多软件都能够识别的文件格式。比如Word、WPS Office、Excel等都可以打开RTF格式的文件,这说明这种格式是较为通用的。
  RTF是Rich Text Format的缩写,意即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。使用“写字板”打开一个RTF格式文件时,将看到文件的内容;如果要查看RTF格式文件的源代码,只要使用“记事本”将它打开就行了。这就是说,你完全可以像编辑HTML文件一样,使用“记事本”来编辑RTF格式文件。
忘记怎么找到WebCAT了,可能找太多、太乱,当时的关键词也没记住,,JavaDoc可以从这里访问。WebCAT是葡萄牙里斯本大学的一个XXX什么的开发的(WebCAT was developed at the XLDB group of the Department of Informatics of the Faculty of Sciences of the University of Lisbon in Portugal.),其中提供的RTF2HTML可以很方便地把RTF文件转换成HTML文件,而且速度也还可以。不过只是针对文本,不能保留图片等资源,有些遗憾,但是并不影响转TXT的目的。
二、RTF转HTML
new RTF2HTML().convertRTFToHTML(new File(filename)),方法convertRTFToHTML会返回一个转换成HTML格式的字符串。
三、HTML转TXT
当得到HTML格式文本后,就可以做HTML转TXT了,WebCAT里并不提供HTML转TXT,所以得自己实现。思路是先去除所有的HTML标记,之后将HTML转义字符还原成原始字符即可。对于去除HTML标记,用正则表达式还是比较方便的,另外就是如何还原HTML转义字符,自己写太麻烦而且还有可能无法覆盖所有情况,所以可以去网上找出现成的代码,这里找到的是一个叫做StringUtils的类,其中有一个unescapeHTML(String, int)方法就是用于反转HTML字符,如将“&”转成空格。
四、查看系统信息
利用StringlistSystemInfo可以查看一些系统信息,具体实现请参考下面代码,对于打印出来的系统信息,有几项内容需要注意一下:
sun.jnu.encoding=Cp1252
file.encoding=UTF-8
file.encoding决定了Java做文件输出时的文件编码,sun.jnu.encoding表示读取文件时采用的什么样的字符编码。
五、开始测试
C:/Workspace/php eclipse/Tester/bin&java -Dfile.encoding=UTF-8 -cp "C:/Workspace/eclipse/RTF/Document P" Main -s
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:/Program Files/Java/jre6/bin
java.vm.version=16.3-b01
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=US
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
user.dir=C:/Documents and Settings/Administrat...
java.runtime.version=1.6.0_20-b02
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:/Program Files/Java/jre6/lib/endorsed
os.arch=x86
java.io.tmpdir=C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows XP
sun.jnu.encoding=Cp1252
java.library.path=C:/WINDOWS/system32;.;C:/WINDOWS/Sun/...
java.specification.name=Java Platform API Specification
java.class.version=50.0
piler=HotSpot Client Compiler
os.version=5.1
user.home=C:/Documents and Settings/Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=UTF-8
java.specification.version=1.6
user.name=KNIGHTRCOM
java.class.path=C:/Documents and Settings/Administrat...
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:/Program Files/Java/jre6
java.specification.vendor=Sun Microsystems Inc.
user.language=en
awt.toolkit=sun.awt.windows.WToolkit
=mixed mode, sharing
java.version=1.6.0_20
java.ext.dirs=C:/Program Files/Java/jre6/lib/C:...
sun.boot.class.path=C:/Program Files/Java/jre6/lib/resour...
java.vendor=Sun Microsystems Inc.
file.separator=/
java.vendor.url.bug=/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...
RTF转TXT。
C:/Workspace/php eclipse/Tester/bin&java -Dfile.encoding=UTF-8 -cp "C:/Workspace/eclipse/RTF/Document P" Main
说明一下参数,-D后面可以让我们主动设置环境变量,所以我们可以设置下Java输出文件时所使用的编码;另外,我们在程序中使用了WebCAT提供的工具类,这些工具类位于解压后的Document Parser文件夹中,所以执行Main类时,需要将文件夹Document Parser放入环境变量中,以便程序可以顺利的找到相关类。
六、关于编码
如果字符编码设置不正确,很大可能会导致乱码现象。这个问题历来都是很棘手的,但是我们在开发过程中可以分析环境以及要读入的文件,然后得出一个正确的解决方案。程序首先是读入RTF然后转换成HTML,这个功能是WebCAT提供的,所以不用关注太多细节问题,但是在调试时发现,转换后的HTML是乱码的!其实这个跟Web开发中request.getParameter得到的结果是乱码的问题有相似之处,都是因为Java没有采用正确的文字编码读取输入字符造成的,在我的开发环境中,由于默认的编码格式是Cp1252(即sun.jnu.encoding的值),所以原本的GB2312就会错误的编码解读导致乱码。这时我们只需要把字符串重新按照正确编码读取一下就OK了。具体步骤是先用Cp1252编码把错误编码的String转成原始的byte,然后再用正确编码GB2312将byte转String还原原始文件的字符内容,代码请参考executeRTF2TXT中的newString(result.getBytes("Cp1252"),"GB2312");这句。
上面描述的是读取文本时产生的乱码现象,另外一个就是写文件的乱码,FileWriter.getEncoding()方法可以获取当前文件是以什么编码保存的,它的值依赖于file.encoding,所以在运行程序时添加一个-D选项设置这个值就可以了,如果有多个环境变量需要指定,可以多用几个-D。
七、源代码
为了删除无用空格,特地在程序中添加了一个StringUtils.trimThroughLines方法用于删除所有行中无效空格,其中正则的具体含义可以参考。程序的所有源码如下(展开查看):
import java.io.F
import java.io.FileW
import java.util.HashM
import pt.tumba.parser.rtf.RTF2HTML;
* Convert RTF to HTML, HTML to TXT
* @author KNIGHTRCOM()
public class Main {
* @param args
* @throws Exception
public static void main(String[] args) throws Exception {
if (args.length & 0) {
if (args[0].equals("-s")) {
listSystemInfo();
System.out.println("usage: java Main [-s]");
System.out.println("你好");
// Generate rtf2.html
executeRTF2TXT();
* List the system info you may concern
public static void listSystemInfo() {
System.getProperties().list(System.out);
* Convert RTF to HTML
* @throws Exception
private static void executeRTF2TXT() throws Exception {
RTF2HTML rtf2html = new RTF2HTML();
String result = rtf2html
.convertRTFToHTML(new File(
"C:/Documents and Settings/Administrator/My Documents/Workspace/php eclipse/QAR Tool/questions/sample2.rtf"));
// This step is important for rendering the text with proper encoding
result = new String(result.getBytes("Cp1252"), "GB2312");
System.out.println(result);
// Extract plain text from HTML
result = result.replaceAll("(?i)&br.*?/?&", "&br /&/n").replaceAll("&.+?&", "");
result = StringUtils.unescapeHTML(result, 0);
// Write the result to the file
FileWriter w = new FileWriter(new File("C:/rtf2.html"));
System.out.println(w.getEncoding());
w.write(StringUtils.trimThroughLines(result));
w.close();
* /javadetails/java-0307.html
class StringUtils {
private StringUtils() {
private static HashMap&String, String& htmlE
htmlEntities = new HashMap&String, String&();
htmlEntities.put("&", "&");
htmlEntities.put("&", "&");
htmlEntities.put("&", "&");
htmlEntities.put(""", "/"");
htmlEntities.put("à", "à");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("ae", "ae");
htmlEntities.put("AE", "AE");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("é", "é");
htmlEntities.put("?", "?");
htmlEntities.put("è", "è");
htmlEntities.put("?", "?");
htmlEntities.put("ê", "ê");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("ss", "ss");
htmlEntities.put("ù", "ù");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("?", "?");
htmlEntities.put("ü", "ü");
htmlEntities.put("?", "?");
htmlEntities.put("", " ");
htmlEntities.put("(C)", "/u00a9");
htmlEntities.put("(R)", "/u00ae");
htmlEntities.put("EUR", "/u20a0");
public static final String unescapeHTML(String source, int start) {
i = source.indexOf("&", start);
if (i & -1) {
j = source.indexOf(";", i);
if (j & i) {
String entityToLookFor = source.substring(i, j + 1);
String value = (String) htmlEntities.get(entityToLookFor);
if (value != null) {
source = new StringBuffer().append(
source.substring(0, i)).append(value).append(
source.substring(j + 1)).toString();
return unescapeHTML(source, i + 1); // recursive call
* Remove heading and tailing space or tab of all lines
* @param source
public static final String trimThroughLines(String source) {
return source.replaceAll("(?ms)^//s+|//s+$", "");
public static void main(String args[]) throws Exception {
// to see accented character to the console
java.io.PrintStream ps = new java.io.PrintStream(System.out, true,
String test = "(C) 2007
Réal Gagnon &&";
ps.println(test + "/n--&/n" + unescapeHTML(test, 0));
* output : (C) 2007 Réal Gagnon &&
* --& (C) 2007 Réal Gagnon &&
浏览: 358105 次
来自: 北京
有pdf转换源码吗,能否发给我参考一下,我有个项目也遇到这样的 ...
不错的界面控件知识,感谢分享!
总的来说,int还是向下取整了,fix应该就是直接干掉小数位了 ...
mark,研究中各地课程推荐深圳广州上海北京南京杭州苏州天津常年开课详询&&&&南山区常年开课详询&&&&南山区常年开课详询&&&&南山区常年开课详询&&&&南山区更多&&&常年开课详询&&&&天河区常年开课详询&&&&常年开课详询&&&&天河区常年开课详询&&&&天河区更多&&&常年开课详询&&&&常年开课详询&&&&常年开课详询&&&&常年开课详询&&&&更多&&&常年开课¥4500&&&&海淀区常年开课¥10880&&&&朝阳区常年开课¥10880&&&&朝阳区常年开课¥10880&&&&朝阳区更多&&&常年开课¥2480&&&&江宁区常年开课¥2580&&&&白下区常年开课¥2480&&&&白下区常年开课¥2580&&&&白下区更多&&&常年开课详询&&&&下城区常年开课详询&&&&常年开课详询&&&&下城区常年开课详询&&&&西湖区更多&&&更多&&&常年开课详询&&&&河北区常年开课¥17500&&&&和平区常年开课详询&&&&和平区常年开课¥1180&&&&和平区更多&&&
7-111-256-264-103-213-21
7-111-256-264-103-213-21txt文件没法改成java文件
我的是win7的系统,新建txt文件后没有txt的后缀,文件重命名后属性不变,还是txt的,要怎么改成java呢,老师指点一下
版主推荐答案
[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=31186&ptid=13170][color=Olive]sailenxu[/color] 的帖子[/url][/b]
是不是这个??
[attach]1038[/attach]
[attach]1039[/attach]
回答者: 回复时间: 21:45
与相关的课程
与相关的资源
问题及答案
数据库:个
移动开发:个
UI设计:个
职业素养:个
网站使用:个
学云知识库
问题及答案
问题及答案
内容导读:白纸黑字、公众认可的显规则不同
内容导读:上 QQ,看微博,浏览优酷,检查
内容导读:2011年,多个职场事件震动职场。
内容导读:联想新的笔记本电脑将于本周正式
内容导读:职场中很多工作方式都存在问题,怎么样把TXT格式转换成JAVA格式?
怎么样把TXT格式转换成JAVA格式?
谁有转换器`给传个
这个网站上有,你可以去下,很多都可以下载。
其他回答 (3)
是指JAR格式的电子书吗?有专门的制作工具,好象叫JBOOKMAKER。打开它直接添加TXT文本僦可以了。 

我找不到这个文件啊``找到下了不能用哈
这个不行``要什么密码呢
你上网上下载个TXT转JAVA的软件!
 
 很简单!
 
 注册完就可以使用!
 
 你加我Q我给你发过去!

 JBOOKMAKER
是指把文件转换成JAVA格式吧,最简单的方法就是直接从网上搜转换软件,另外,也可以直接下载相应软件到手机上。
相关知识等待您来回答
软件领域专家

我要回帖

更多关于 txt转换java 的文章

 

随机推荐