JAVA读远程文件乱码
在本地读取文件没问题,但是读远程服务器的文件出现乱码的情况。远程服务器是Linux系统String strUrl = "http://192.168.1.128:3306/data/hello.txt";
URL url = new URL(strUrl);
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(5000);
urlCon.setReadTimeout(5000);
BufferedReader in=new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF-8"));
BufferedWriter out=new BufferedWriter(new FileWriter("F:\\朱文慧\\findpoint\\out.txt"));
String inputLine="";
while((inputLine=in.readLine())!=null){
System.out.println(inputLine);
out.write(inputLine);
}
in.close();
out.close();
JAVA 读远程文件 乱码 --------------------编程问答-------------------- 编码问题. 不要用BufferedReader和BufferedWrite去读. --------------------编程问答-------------------- 如果你不在程序中显示文件内容,就不要使用Reader和Writer,直接使用inputStream和outPutStream就可以了。因为Reader和Writer会涉及编码的转换,你使用的编码不正确就会出现乱码。单纯的文件传递直接使用字节方式处理就没问题了,就像楼上说的。 --------------------编程问答--------------------
能具体点吗 我不太会用inputStream和outPutStream --------------------编程问答--------------------
那要怎么读啊 --------------------编程问答-------------------- 类似于这样
--------------------编程问答-------------------- 不行啊 InputStream in = urlCon.getInputStream();这句有问题
String strUrl = "http://192.168.1.128:3306/data/hello.txt";
URL url = new URL(strUrl);
HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
urlCon.setConnectTimeout(5000);
urlCon.setReadTimeout(5000);
InputStream in = urlCon.getInputStream();
OutputStream out = new FileOutputStream("F:\\朱文慧\\findpoint\\out.txt");
int current=in.read();
while(current!=-1){
out.write(current);
current=in.read();
}
in.close();
out.close();
报错如下
Exception in thread "main" java.lang.ClassCastException: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream cannot be cast to org.omg.CORBA.portable.InputStream
at test1.main(test1.java:35)
--------------------编程问答--------------------
5楼给你的代码没有问题. 你报这个错是因为你引入的类包不对.
正确的应该是java.io.InputStream类. 而不是org.omg.CORBA.portable.InputStream --------------------编程问答-------------------- 写入的还是乱码啊 --------------------编程问答-------------------- 打开文件以后用notebook++之类的软件打开看看.可能是文件编码的问题.
补充:Java , Java EE