import?java.io.BufferedReader;
為潮安等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及潮安網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、成都網(wǎng)站設計、潮安網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.io.PrintWriter;
public?class?Test10?{
/**
*?復制當前的源程序到項目的根目錄
*?@throws?IOException
*/
public?static?void?main(String[]?args)?throws?IOException?{
/*
*?1:讀取原文件
*?2:項目標文件中寫
*?3:使用緩沖流按行讀寫
*/
FileInputStream?fis=new?FileInputStream("src"+File.separator+"day01"+File.separator+"Test1.java");
//轉(zhuǎn)化為字符輸出流
InputStreamReader?isr=new?InputStreamReader(fis);
//按行為單位讀取字符串
BufferedReader?br=new?BufferedReader(isr);
//
PrintWriter?pw=new?PrintWriter("Test1.java");
String?line=null;
while((line=br.readLine())!=null){
pw.println(line);
}
pw.close();
br.close();
}
}
FIleInputStream讀取的是字節(jié),想要顯示,通過Steing的構造方法new String(字節(jié)數(shù)組,0,讀取多少個);字符讀取出來的是字節(jié)碼,是整形,你直接轉(zhuǎn)換成字符,那他就會當成ascii碼轉(zhuǎn)換,所以是亂碼,你可以這么去理解,你讀取出來的字符是占2個字節(jié)的,而數(shù)字或字母是一個字節(jié),當要讀取中文的時候,他返回的是一個int的值,而這個值只是一個字節(jié)的ascii的值而已,但是中文是兩個字節(jié),他就只讀取了這個中文的一半,所以你用這一半的ascii去轉(zhuǎn)換成字符,當然是亂碼了,但是讀取的是字母或者數(shù)字的話,那么只占一個字節(jié),當然讀取出來的就是一個ascii碼,所以轉(zhuǎn)換出來還是同樣的字符
import java.io.File;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class StreamTest {
public static void main(String[] args) {
StreamTest st = new StreamTest();
String writeStr = "Hello World!\r\n你好!";
String fileName = "outFile.txt";
st.OutputTest(fileName,writeStr);
st.InputTest(fileName);
}
//字節(jié)-讀
private void InputTest(String fileName) {
File f = createFile(fileName);
FileInputStream fis;
byte[] b = new byte[100];
try {
System.out.println("創(chuàng)建輸入流...");
fis = new FileInputStream(f);
System.out.println("創(chuàng)建輸入流完成");
System.out.println("開始讀取...");
fis.read(b);
System.out.println("讀取完成");
String str = new String(b);
System.out.println("讀取內(nèi)容輸出:\n"+str);
fis.close();
}catch(FileNotFoundException e) {
System.out.println("文件沒有找到");
}catch(IOException e) {
System.out.println("讀取失敗");
}
}
//字節(jié)-寫
private void OutputTest(String fileName,String text) {
File f = createFile(fileName);
FileOutputStream fos;
try{
System.out.println("創(chuàng)建輸出流...");
fos = new FileOutputStream(f);
System.out.println("創(chuàng)建輸出流完成");
byte[] testBArray = text.getBytes();
System.out.println("開始寫數(shù)據(jù)...");
fos.write(testBArray);
fos.flush();
System.out.println("寫數(shù)據(jù)完成");
fos.close();
}catch(FileNotFoundException e) {
System.out.println("文件沒有找到");
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
//創(chuàng)建文件
private File createFile(String fileName) {
File f = new File(fileName);
if(!f.exists()) {
System.out.println("文件不存在");
try{
System.out.println("創(chuàng)建文件...");
f.createNewFile();
System.out.println("創(chuàng)建文件完成");
}catch(IOException e) {
System.out.println("文件創(chuàng)建失敗");
e.printStackTrace();
}
}else {
System.out.println("文件已經(jīng)存在");
}
return f;
}
}
字符流的話改成FileWriter(),FileReader()就好啦!
不懂加:百度HI!^0^
這些是流之間的轉(zhuǎn)換,就是把 ByteArrayOutputStream baos輸出流
轉(zhuǎn)換成DataOutputStream dos輸出流
b 表示存貯的字符數(shù)組
(0,len)表示讀取整個文件的大小
dos.write(b,0.len)表示讀取整個文件,寫入到數(shù)組b中
代碼如下,運行下,是否符合你的要求:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Scanner;
public class Test
{
public static void main(String[] args) throws Exception
{
Scanner scan = new Scanner(System.in);
DataOutputStream dos = new DataOutputStream(new FileOutputStream("1.txt"));
//從鍵盤上輸入10個整數(shù),判斷哪些是偶數(shù),把所有偶數(shù)寫到一個文件中去
String content = "";
for(int i=0;i10;i++)
{
System.out.println("請輸入第" + (i+1) + "個數(shù)");
int num = scan.nextInt();
if(num %2 == 0) content += num + ",";
}
dos.writeUTF(content);
scan.close();
//從文件中讀出這些偶數(shù),顯示在屏幕上
DataInputStream dis = new DataInputStream(new FileInputStream("1.txt"));
try
{
content = dis.readUTF();
System.out.println(content);
} catch (Exception e)
{
e.printStackTrace();
}
dis.close();
}
}
這里以字節(jié)流FileInputStream,F(xiàn)ileOutputStream為例。代碼例子如下:
import java.io.File;
/**
* 把一個文件夾中的文件復制到一個指定的文件夾
* @author young
*
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) {
/* 指定源exe文件的存放路徑 */
String str = "f:/jdk-1_5_0_06-windows-i586-p.exe";
/* 指定復制后的exe的目標路徑 */
String strs = "e:/copy.exe";
/* 創(chuàng)建輸入和輸出流 */
FileInputStream fis = null;
FileOutputStream fos = null;
try {
/* 將io流和文件關聯(lián) */
fis = new FileInputStream(str);
fos = new FileOutputStream(strs);
byte[] buf = new byte[1024 * 1024];
int len;
while ((len = fis.read(buf)) != -1) {
fos.write(buf, 0, len);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
文章題目:java字節(jié)流讀寫的代碼 java中字節(jié)流
鏈接URL:http://muchs.cn/article40/docsoeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、云服務器、網(wǎng)站改版、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)