å
¶ä¸BufferedInputStreamæ¯FileInputStreamçåç±»,ä½ å¯ä»¥ç解æåæ ·å¤çä¸ä¸ªæ件ï¼BufferedInputStreamæçæ´é«,åå æ¯BufferedInputStreaméç¨äºæ´é«æçåèæµå¤çæ¹å¼,
BufferedInputStreamæç¨ç¼å²æµæå
å¨çç¼å²å¨è¿æ¥å°I/Oæµï¼å
许javaç¨åºå¯¹å¤ä¸ªåèåæ¶æä½ï¼è¿æ ·å°±æé«äºæçã
inputstreamreaderçæé å½æ°å¸¦ä¸¤ä¸ªåæ°,ä¸æ¯å
³èå°çæ件,äºæ¯å符解ç æ¹å¼. æ以å®é
ä¸éè¿inputstreamreaderå®ä¾è¯»åºæ¥çä¸è¥¿å·²ç»ä¸æ¯ç£çä¸åå§çåèæ°æ®äº,èæ¯æ ¹æ®ä½ æå®ç解ç æ¹å¼(å¦æä½ æ²¡ææå®,å使ç¨ç³»ç»ç¼ºçç,win2000ä¸æ¯gbk/gb2312)æåèæµè½¬æ¢æäºå符æµ,注æåèæµåå符æµçåºå«,ä¸ä¸ªåèå°±æ¯8æ¯ç¹ä½(32ä½æºå¨ä¸),èä¸ä¸ªå符å«å¤å°åèåä¸ä¸åçç¼ç /解ç æ¹å¼æå
³äº,å¦gbkæ¯ä¸åè,utf-8æ¯1-3çåé¿åè,utf-16æ¯2个å®é¿åè.
ãã äºæ¯å¼å¾ä½ 注æçå°±æ¯å½ä½ ç¨inputstreamreader读æ件æ¶,ä½ åºè¯¥ç¥é该æ件被åå¨æ¶æ¯ç¨ä»ä¹æ¹å¼ç¼ç ç,å¦åä½ æå®éäºè§£ç æ¹å¼,读åºæ¥çå°±æ¯ä¹±ç .ä½æ¯éä¸æ¥æ¥è¯´,å¨å
¨è±æç¯å¢ä¸,é®é¢ä¹æ²¡è¿ä¸¥é.å 为ææçå符éå¨åä¸ä½ä¸é½æ¯ä¸asciiå
¼å®¹ç(æçç,ä¹è®¸æçä¸æ¯),ç¶èå½ä½ çç¨åºæ¶åä¸æå符æ¶,è¯å®æ¯ä¼åºéäº.
ãã é£ä¹fileinputstreamçç¹ç¹å¢?å®çæé å½æ°å°±ä¸ä¸ª,å³å
³èå°çæ件,æ¢ç¶æ²¡ææå®è§£ç æ¹å¼,é£å®æåçå°±æ¯åªä»¥åèæµçæ¹å¼è¯»åºæ件èä¸åä»»ä½å¤ç, ä½ åºè¯¥ç¨ä¸ä¸ªåèæ°ç»æ¥æ¥åå®,对该æ°ç»ä½ 以åè¿å¯ä»¥åä»»ä½æ³åçæä½ã
ç»ä½ 个ä¾åï¼èªå·±å»æµè¯
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.*;
public class test {
/* public static void main(String[] args) {
String str=new String("Face recognition in the thermal infrared domain has received relatively little attention in the literature in comparison with recognition in visible-spectrum imagery");
StringTokenizer token=new StringTokenizer(str);
Hashtable ht=new Hashtable();
while(token.hasMoreTokens()){
String temp=new String(token.nextToken());
ht.put(temp,temp);
}
Enumeration en=ht.keys();
while(en.hasMoreElements()){
Object obj=en.nextElement();
System.out.print("KEY_NO:"+obj);
System.out.println("="+ht.get(obj));
}
}
*/
public static void main(String[] args){
try {
String file1 ="d:\\1.doc";
String file2 ="d:\\2.doc";
copyFile(file1,file2);
readFile(file2);
//fileCheck("d:\\test1.txt");
// readFile("D:\\test1.txt");
// readFileByte("D:\\test1.txt");
// readFileByFile("D:\\test1.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void testFile() throws IOException{
copyFile("D:\\test1.txt","D:\\test2.txt");
}
public static void copyFile(String inName,String outName) throws IOException
{
File tmp = new File(outName);
if(!tmp.canRead())tmp.createNewFile();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(inName));
BufferedOutputStream out= new BufferedOutputStream(new FileOutputStream(outName));
copyFile(in,out,true);
}
public static void readFile(String inName) throws IOException
{
BufferedReader read = new BufferedReader (new InputStreamReader(new FileInputStream(inName)));
String b ;
while((b=read.readLine())!=null )
print( b);
}
public static void readFileByte(String inName) throws IOException
{
BufferedInputStream read = new BufferedInputStream (new FileInputStream(inName));
int b = 0;
while((b=read.read())!=-1)
System.out.print ((char)b);
}
public static void readFileByFile(String name) throws IOException
{
File tmp = new File (name);
FileReader fr= new FileReader(tmp);
BufferedReader br = new BufferedReader(fr);
String b;
while((b=br.readLine())!=null)
print(b);
}
public static void copyFile(InputStream in ,OutputStream out, boolean close) throws IOException{
int b;
while((b=in.read())!=-1)
{
out.write(b);
}
in.close();
if(close)
out.close();
}
public static void print(Object o)
{
System.out.println(o);
}
public static void fileCheck(String name) throws IOException
{
print("---"+name+"---");
File f= new File(name);
if(!f.exists())
{
print("fle not exist!");
return;
}
print("Canonical name:"+f.getCanonicalPath());
String p= f.getParent();
if(p!=null)
print("Parent directory :"+p);
if(f.canRead())print("file can be read!");
if(f.canWrite())print("file can be writable!");
Date d = new Date();
d.setTime(f.lastModified());
print("last modified time :"+d);
if(f.isFile())
{
print("file size is :"+f.length()+" bytes");
}else if(f.isDirectory()){print("is a directry!");}
else{
print("neither a directory or a file!");
}
print("");
}
}
温馨提示:答案为网友推荐,仅供参考