導航:首頁 > 編程語言 > javafilestream

javafilestream

發布時間:2023-06-13 13:34:43

java如何拷貝文件到另一個目錄下

下面列舉出4種方式:

1、使用FileStreams復制

這是最經典的方式將一個文版件的內容復制到另一個文件中。 使用權FileInputStream讀取文件A的位元組,使用FileOutputStream寫入到文件B。正如你所看到的我們執行幾個讀和寫操作try的數據,所以這應該是一個低效率的,下一個方法我們將看到新的方式。 這是第一個方法的代碼:

② java文件如何讀取

有幾種方法讀取吧
File file = new File("d:\\a.txt");//把D盤目錄下的a.txt讀取出來,
InputStream is = new FileInputStream(file);//把文件以位元組流讀回到內存中
第二種是類加答載
Demo1.class.getClassLoader().getResourceAsStream("a.txt");//Demo1為當前類名,a.txt在與Demo1.class在同一目錄下。
還有其它的就不說了

③ Java File和FileStream類區別在什麼地方

FileStream可以比喻成在水管中流動的水,那麼水管中流動的水從哪裡來,流到哪裡去,這個哪裡來,哪裡去就可以比喻為File。
整句話有代碼可以表示為:
FileStream fs = new FileStream(new File(filename));
這是兩者的關系了。當然File、FileStream還各自有方法、屬性,這是兩者的不同之處。

④ java程序中怎樣用文件存儲數據

對於一些小文件,我們可以一次性讀取它的所有位元組,然後一次提交到資料庫
///
/// 這個方法演示了如何一次提交所有的位元組。這樣導致的結果是:應用程序立即需要申請等同於文件大小的內存
static void SubmitFileByOnce() {
string file = @"F:\功夫熊貓.rmvb";//文件大小為519MB
byte[] buffer = File.ReadAllBytes(file);
using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) {
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)";
cmd.Parameters.AddRange(
new[]
{
new SqlParameter("@fileName",file),
new SqlParameter("@fileContents",buffer)
});
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}

但是,上面的方法有幾個問題,主要體現在如果文件比較大的話
它需要一次性很大的內存,具體數據等同於文件大小。因為File.ReadAllBytes方法是將所有位元組全部讀入到內存。
它會導致提交失敗,就是因為數據太大了。資料庫也會拒絕。
那麼,我就對這個方法做了一下改進,將文件拆分為5MB一段,也就是說,此時每次申請的內存只有5MB。這就大大地提高了可用性。
/// 這個方法是將文件切分為5MB的塊,每次只是提交5MB,所以可能多次提交,但內存佔用就比較小
static void SubmitFileStepByStep() {
string file = @"F:\功夫熊貓.rmvb";//以這個文件為例,大小為519MB,一共需要的時間大約94秒。還是有點慢的,所以還可能需要進行壓縮
FileStream fs = new FileStream(file, FileMode.Open);

byte[] buffer = new byte[5 * 1024 * 1024];
int readCount;
using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true"))
{
conn.Open();

while ((readCount = fs.Read(buffer, 0, buffer.Length)) > 0)
{

using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)";
cmd.Parameters.AddRange(
new[]
{
new SqlParameter("@fileName",file),
new SqlParameter("@fileContents",buffer)
});

cmd.ExecuteNonQuery();
}

}
conn.Close();

}
}

這樣的話,有一個後果就是一個文件,可能在資料庫中會有多條記錄。所以在讀取的時候,我們需要對其進行合並
static void DownloadFile() {
string file = @"F:\功夫熊貓.rmvb";
string destfile = @"E:\Temp\Temp.wmv";
using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true"))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT FileContents FROM Files WHERE FileName=@fileName";
cmd.Parameters.AddRange(
new[]
{
new SqlParameter("@fileName",file),
});
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
FileStream fs = new FileStream(destfile, FileMode.Append, FileAccess.Write);

while (reader.Read())
{
byte[] buffer = (byte[])reader[0];
fs.Write(buffer, 0, buffer.Length);
}
fs.Close();
reader.Close();
conn.Close();
}
}
}

⑤ c#filestream 與java哪個api相同

C#當中的API是: FileStream fs = new FileStream(Filepath, FileMode.Open);
Java當中的API是:File file = new File(path);

⑥ java 讀取伺服器上的文件

File file = new File(ServletActionContext.getServletContext().getRealPath(「/」),"test.txt");
"/"是web項目的根目錄,然後就和讀本地文件的一樣

閱讀全文

與javafilestream相關的資料

熱點內容
網路ip地址不對 瀏覽:761
聯盟會員網站上應該有哪些內容 瀏覽:957
編程里ch什麼意思 瀏覽:644
寶山桌上文件櫃多少錢 瀏覽:884
電信網路電視怎麼看直播電視 瀏覽:319
直播帶貨運營怎麼做數據 瀏覽:882
linux系統csv文件打開亂碼 瀏覽:624
js平方根計算 瀏覽:474
命令提示符如何看網路結構 瀏覽:921
mac的lr配置文件路徑 瀏覽:424
在電腦上怎麼qq傳文件怎麼打開不了 瀏覽:154
百度雲怎麼找本地文件 瀏覽:661
小米4怎樣把程序加密 瀏覽:118
蘋果手機屏幕6個密碼 瀏覽:882
如何用手機編程小游戲 瀏覽:531
輸入你的小程序appid 瀏覽:276
ps文件暫存檔已滿 瀏覽:230
微信紅包留言可以語音 瀏覽:192
c語言畫直線代碼 瀏覽:107
華為g7文件管理在哪裡 瀏覽:74

友情鏈接