以下是我之前提问的编辑版本:
所以这是我的AIM:读取.txt文件(HTML文件)并将所需内容放入.txt文件中。
现在,这个HTML文件包含大量我不需要的表和格式,我只需要内容
import java.io.*;
public class File {
public static void main(String[] args) throws IOException
{
try{ String input = "out.txt";
BufferedReader in = new BufferedReader(new FileReader(input));
String output = "output.txt";
BufferedWriter out = new BufferedWriter( new FileWriter( output ) );
String inputLine = "";
int i=0;
while ( ( inputLine = in.readLine( ) ) != null ) {
if ( inputLine.contains( "Windows" ) ) {
out.append( inputLine );
out.newLine( );
}
in.close();
out.close();
}
}
它会创建一个名为“output.txt”的文件,但它完全是空的。
如何对字符串进行精确排序?是逐字逐句还是一句一句?
以下是该文件的示例。 (有点吧)
<TR class="RowDark">
<TD width=0><A href="Report.asp?ReportID=100&sp=Service+Pack+1&os=Microsoft%28R%29+Windows%28R%29+Server+2003%2C+Enterprise+Edition"><IMG border=0 src="images/icolink3.gif" alt="Open the target" width=11 height=11></A></TD>
<TD class=SimpleTextSmall> Microsoft(R) Windows(R) Server 2003, Enterprise Edition </TD>
<TD class=SimpleTextSmall> Service Pack 1 </TD>
<TD class=SimpleTextSmall> 60 </TD>
</TR>
它可以像Microsoft(R)Windows(R)Server Enterprise Edition,60那样执行吗?
更新:
它还执行“hi”
答案 0 :(得分:2)
BufferedWriter
无法使用字符串参数进行实例化。请改用:
BufferedWriter out = new BufferedWriter(new FileWriter( output ));
此外,代码中存在一些错误:
可以简化为:
try {
String input= "D:\\input.txt";
BufferedReader in = new BufferedReader( new FileReader( input ) );
String output = "D:\\output.txt";
BufferedWriter out = new BufferedWriter( new FileWriter( output ) );
String inputLine = "";
while ( ( inputLine = in.readLine( ) ) != null ) {
if ( inputLine.contains( "Windows" ) ) {
out.append( inputLine );
out.newLine( );
}
}
in.close( );
out.flush( );
out.close( );
} catch ( Exception e ) {
}
答案 1 :(得分:0)
是编译时错误而不是运行时错误吗?如果是这样,可能是因为BufferedWriter没有构造函数接受String,只有另一个Writer。相反,尝试:
String output="output.txt";
BufferedWriter out = new BufferedWriter(new FileWriter(output));
BufferedWriter旨在包装其他Writer类,以防止每个输入的字节直接写入底层输出流。
答案 2 :(得分:0)
还尝试实例化你的数组!你有String Workstation[];
和String Server[];
,但是在这种状态下,它们是空的引用,并且在你修复编译错误后会给你nullpointer异常。
尝试将其初始化为String Server[] = new String[sizeOfArray];
或考虑使用List<String>
代替。