如题,不是全部汉字,而是部分几个会变成??号,真搞不明白,请指点,源代码:
package ch01;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.util.regex.Matcher;
import java.util.regex.Pattern;public class LogFile { /**
* @param args
*/
public String downloadFile(File file){
StringBuilder sb=new StringBuilder();
String string=new String();
try {
FileInputStream fis=new FileInputStream(file);
byte[] buf = new byte[1024];
while((fis.read(buf))!=-1){
sb.append(new String(buf,"utf-8"));
buf=new byte[1024];//重新生成,避免和上次读取的数据重复
}
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
string=sb.toString();
return string;
}
public static void main(String[] args) {
LogFile lf=new LogFile();
String st=lf.downloadFile(new File("IMDB0100_MFC01.log"));
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter("foo.test"));
bw.write(st);
bw.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}}需处理的文件请参考附件
package ch01;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.util.regex.Matcher;
import java.util.regex.Pattern;public class LogFile { /**
* @param args
*/
public String downloadFile(File file){
StringBuilder sb=new StringBuilder();
String string=new String();
try {
FileInputStream fis=new FileInputStream(file);
byte[] buf = new byte[1024];
while((fis.read(buf))!=-1){
sb.append(new String(buf,"utf-8"));
buf=new byte[1024];//重新生成,避免和上次读取的数据重复
}
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
string=sb.toString();
return string;
}
public static void main(String[] args) {
LogFile lf=new LogFile();
String st=lf.downloadFile(new File("IMDB0100_MFC01.log"));
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter("foo.test"));
bw.write(st);
bw.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}}需处理的文件请参考附件
解决方案 »
- 求解
- 怎样在MyEclipse中将一个java的程序打包成一个可执行文件呢???
- 字节流编码的问题,特请教!
- script 中function 使用标准
- JAVA下包编译的问题,我在 D:\sample 目录下 有几个JAVA文件要编译,其中一个需要调用另外一个CLASS。但是总是提示这些错误。。。。
- 谁有Jspsmartupload的API和源程序,能不能给小弟发一份
- 谁有向需要登录的网站上传cookie的成功案例,能否贴出源代码,谢谢!!!!
- 请教:java在unix/linux下的运行速度如何?还是像在windows下那么慢吗?比如jbiulder的linux版,速度如何?我没有试过,谢
- 有没有在杭州的喜爱java的朋友呢?进来签个到吧,让我门共同切磋,共同提高吧
- java书籍下载站点大评比
- 线程运行效率问题
- 急求JDK1.5安装问题
FileInputStream fis=new FileInputStream(file);
byte[] buf = new byte[1024];
while((fis.read(buf))!=-1){//这里的问题
//如果有个中文字符,正好被你在1024这里分开了,那new String的时候,不是就解析不出来了么?
sb.append(new String(buf,"utf-8"));
buf=new byte[1024];//重新生成,避免和上次读取的数据重复
}读取字符内容,要么全部按字节读取,然后转字符串,要么按字符流读取
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class LogFile { /**
* @param args
*/
public String downloadFile(File file){
StringBuilder sb=new StringBuilder();
String string=new String();
try {
BufferedReader buffer=new BufferedReader(new FileReader(file));
while((string=buffer.readLine())!=null){
string=new String(string.getBytes(),"utf-8");
sb.append(string);
}
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
string=sb.toString();
return string;
}
public static void main(String[] args) {
LogFile lf=new LogFile();
String st=lf.downloadFile(new File("IMDB0100_MFC01.log"));
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter("foo.test"));
bw.write(st);
bw.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}}