62,623
社区成员
发帖
与我相关
我的任务
分享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();
}
}
}
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];//重新生成,避免和上次读取的数据重复
}
package ch01;
import java.io.BufferedReader;
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();
}
}
}