指從檔案中或者其他地方讀取數據輸入到記憶體中
這個是輸出了那個檔案的內容
注意
in.close();別忘了寫
in.read();是返回依次讀取的長度。知道讀到最後 返回-1
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class test
{
public static void main(String[] args)
{
FileInputStream in;
try
{
in = new FileInputStream("D:\\office\\new.txt");
byte b[]=new byte[100];
int len=0;
while((len=in.read(b))!=-1)
{
System.out.println(new String(b,0,len));
new String (緩衝數據的陣列,從那個位置開始轉化,總共轉換多少位元組)
}
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class test
{
public static void main(String[] args)
{
/*FileInputStream in;
try
{
in = new FileInputStream("D:\\office\\new.txt");
byte b[]=new byte[100];
int len=0;
while((len=in.read(b))!=-1)
{
System.out.println(new String(b,0,len));
//new String (緩衝數據的陣列,從那個位置開始轉化,總共轉換多少位元組)
}
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
*/
try {
FileOutputStream out=new FileOutputStream("D:\\office\\new.txt");
String s=" are you ?";
out.write(s.getBytes());把數據寫到記憶體
out.flush();把記憶體中的數據刷寫到硬碟
out.close();關閉流
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上邊這個輸出流寫法 會直接把原來的內容覆蓋掉
第一個是賦值txt
try {
FileOutputStream out=new FileOutputStream("D:\\office\\new2.txt");
FileInputStream in=new FileInputStream("D:\\office\\new.txt");
byte b[]=new byte[100];
int len=0;
while((len=in.read(b))!=-1)
{
out.write(b,0,len);
(緩衝陣列,從哪個位置開始,獲取的陣列總長度)。
}
out.flush();
out.close();
in.close();
} catch (Exception e)
{
e.printStackTrace();
}
第二個是複製圖片 但是 就算你要複製去的地方 你要寫上名字
try {
FileOutputStream out=new FileOutputStream("D:\\office\\2\\new.png");
FileInputStream in=new FileInputStream("D:\\office\\1.png");
byte b[]=new byte[100];
int len=0;
while((len=in.read(b))!=-1)
{
out.write(b,0,len);
(緩衝陣列,從哪個位置開始,獲取的陣列總長度)。
}
out.flush();
out.close();
in.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
注意byte陣列並不是只用一次哦,那個容量是代表他每次讀的長度大小 並不是只能讀這些!!!!
字元流完成拷貝檔案,字元流只適合操作內容是字元檔案
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class test
{
public static void main(String[] args)
{
test.testFileReader("D:\\office\\new.txt");
test.testFileWriter("yes", "D:\\office\\new.txt");
}
檔案字元輸入流-------
public static void testFileReader(String path)
{
try {
FileReader f=new FileReader(path);
char c[]=new char[100];
int len=0;
while((len=f.read(c))!=-1)
{
System.out.println(new String(c,0,len));
}
f.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
檔案字元輸出流
public static void testFileWriter(String text,String path)
{
try {
FileWriter f=new FileWriter(path);
f.write(text);
f.flush();//記憶體數據刷到硬碟
f.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
字元流完成拷貝檔案
public static void copy(String inf,String outf)
{
try {
FileReader fr=new FileReader(inf);
FileWriter fw=new FileWriter(outf);
char c[]=new char[100];
int len;
while((len=fr.read(c))!=-1)
{
fw.write(c,0,len);
}
fw.flush();
fw.close();
fr.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}