我正在尝试在JAVA中构建一个程序,该程序从URL获取数据并将其保存到文本文件中。我的主要问题是我的程序不存储行更改。更具体的是我的代码:
import java.io.*;
import java.net.*;
public class Jva_Parser {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://cgi.di.uoa.gr/~std10108/a.txt");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
String inputLine;
while ((inputLine = in.readLine()) != null)
{
writer.write(inputLine+"\n");
System.out.println(inputLine);
}
writer.close();
in.close();
}
}
控制台的输出是:
这是一条消息!
这是第二行!
应该如此。该文件正是如此。 而创建的文件包含:
这是一条消息!这是第二行!
我无法理解我做错了什么。
编辑:我试过了,但它不起作用
writer.write(inputLine + System.getProperty( "line.separator" ));
是的我用记事本打开文件,我在Windows。我想把程序带到android所以任何进一步的信息都是有用的
答案 0 :(得分:3)
你可能正在使用ala记事本来验证这个吗?这些程序不会显示行更改,因为您只有\ n,它可能不是系统行分隔符。尝试附加System.getProperty( "line.separator" )
而不仅仅是\ n(可能是您系统上的\ n \ r)
答案 1 :(得分:0)
System.getProperty(“line.separator”)是正确的方法,因此它可以在所有平台上正常工作。
来自apache的FileUtils.copyURLToFile提供了相同的功能。你应该试试。 http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL,java.io.File)
答案 2 :(得分:0)
由于这种情况,我更喜欢PrintWriter
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
String inputLine;
while ((inputLine = in.readLine()) != null)
{
writer.println(inputLine);
System.out.println(inputLine);
}
可能需要这个,它通常是我创建我的作家的方式:
PrintWriter out = new PrintWriter(new FileWriter("the-file-name.txt"));
我将其称为“out”,以便我可以插入或删除System。用于记录目的。 我使用像替换所有System.out的命令。没有。 或者用System.out.println
将它放回去.outlprintln