導航:首頁 > 數據處理 > java如何使用數據文件

java如何使用數據文件

發布時間:2023-02-10 03:47:37

❶ 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();
}
}
}

❷ Java中如何通過txt文件存儲和取出數據

Java中讀取txt文件可以使用file類先創建一個對象,然後使用I/O操作,進行讀取或者寫入操作,示例如下:x0dx0aimportjava.io.BufferedReader;x0dx0aimportjava.io.File;x0dx0aimportjava.io.FileInputStream;x0dx0aimportjava.io.FileNotFoundException;x0dx0aimportjava.io.FileOutputStream;x0dx0aimportjava.io.IOException;x0dx0aimportjava.io.InputStreamReader;x0dx0aimportjava.io.PrintWriter;x0dx0ax0dx0apublicclassdemo2{x0dx0aprivatestaticStringpath="f:/demo1.txt";x0dx0aprivatestaticFilefile;x0dx0astatic{x0dx0afile=newFile(path);x0dx0aif(!file.exists()){x0dx0atry{x0dx0afile.createNewFile();x0dx0a}catch(IOExceptione){x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0a}(String[]args)throwsIOException{x0dx0aStudentstu=newStudent(1,"張三",90);x0dx0awriteDataToFile(file,stu);x0dx0areadDataFromFile(file);x0dx0a}x0dx0ax0d(Filefile)throwsIOException{x0dx0aBufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(file)));x0dx0aStringstr="";x0dx0awhile((str=reader.readLine())!=null){x0dx0aString[]stuInfo=str.split(",");x0dx0aSystem.out.println("學號:"+stuInfo[0]+"姓名:"+stuInfo[1]+"score:"+stuInfo[2]);x0dx0a}x0dx0a}x0dx0ax0d(Filefile,Studentstu)throwsFileNotFoundException{x0dx0aPrintWriterout=newPrintWriter(newFileOutputStream(file,true));x0dx0aout.println(stu.toString());x0dx0aout.close();x0dx0a}x0dx0a}

❸ java如何從資料庫讀取數據並寫入txt文件

寫Java程序時經常碰到要讀如txt或寫入txt文件的情況,但是由於要定義好多變數,經常記不住,每次都要查,特此整理一下,簡單易用,方便好懂!

[java]viewplain
packagee.thu.keyword.test;

importjava.io.File;
importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileInputStream;
importjava.io.FileWriter;

publicclasscin_txt{
staticvoidmain(Stringargs[]){
try{//防止文件建立或讀取失敗,用catch捕捉錯誤並列印,也可以throw

/*讀入TXT文件*/
Stringpathname="D:\twitter\13_9_6\dataset\en\input.txt";//絕對路徑或相對路徑都可以,這里是絕對路徑,寫入文件時演示相對路徑
Filefilename=newFile(pathname);//要讀取以上路徑的input。txt文件
InputStreamReaderreader=newInputStreamReader(
newFileInputStream(filename));//建立一個輸入流對象reader
BufferedReaderbr=newBufferedReader(reader);//建立一個對象,它把文件內容轉成計算機能讀懂的語言
Stringline="";
line=br.readLine();
while(line!=null){
line=br.readLine();//一次讀入一行數據
}

/*寫入Txt文件*/
Filewritename=newFile(".\result\en\output.txt");//相對路徑,如果沒有則要建立一個新的output。txt文件
writename.createNewFile();//創建新文件
BufferedWriterout=newBufferedWriter(newFileWriter(writename));
out.write("我會寫入文件啦 ");// 即為換行
out.flush();//把緩存區內容壓入文件
out.close();//最後記得關閉文件

}catch(Exceptione){
e.printStackTrace();
}
}
}

❹ Java怎麼使用表格輸入數據並保存為文件

在 Java 中使用表格輸入數據並保存為文件,可以使用 Swing 包中的 JTable 組件和 I/O 類庫中的文件操作方法。
首先,你需要創建一個 JTable 對象,並在表格中輸入數據。例如:
String[] columnNames = {"Name", "Age", "Gender"};Object[][] data = {{"Alice", 20, "Female"}, {"Bob", 25, "Male"}};JTable table = new JTable(data, columnNames);

然後,你需要使用 I/O 類庫中的文件操作方法,將表格中的數據保存到文件中。例如,你可以使用 FileWriter 類來寫入文件:
FileWriter writer = new FileWriter("table.txt");for (int i = 0; i < table.getRowCount(); i++) { for (int j = 0; j < table.getColumnCount(); j++) {
writer.write(table.getValueAt(i, j).toString());
writer.write("\t");
}
writer.write("\n");
}
writer.close();

上面的代碼會將表格中的數據寫入文件 "table.txt" 中,每行數據之間用製表符隔開,每列數據之間用換行符隔開。
注意,在使用文件操作方法時,你需要處理文件讀寫可能出現的異常。你可以使用 try-catch 語句將文件操作代碼包裝起來,以便在發生異常時能夠正確處理。
這是一個簡單的例子,你可以根據自己的需求來調整代碼。例如,你可以使用其他的 I/O 類,比如 BufferedWriter 或 PrintWriter 等,來更方便地寫入文件。你還可以使用其他的文件格式,比如 CSV、Excel 等,來保存數據。

閱讀全文

與java如何使用數據文件相關的資料

熱點內容
物流企業的信息反饋效率如何 瀏覽:877
赤峰調料批發市場在哪裡 瀏覽:20
復制的程序為什麼運行錯誤 瀏覽:570
大數據下載在哪裡 瀏覽:918
選款標准數據是什麼意思 瀏覽:665
行駛證能查詢車輛什麼信息 瀏覽:798
客戶問如何知道你的產品是正品 瀏覽:501
什麼是重命名數據類型 瀏覽:765
作為產品經理如何寫app的邏輯 瀏覽:123
小米換機怎麼選擇第三方應用程序 瀏覽:248
酒店代理怎麼推廣 瀏覽:855
如何跟蹤小程序交互代碼 瀏覽:240
我想買個小程序在哪裡找 瀏覽:612
日照運營商大數據多少錢一條 瀏覽:80
電子表格如何設置數據下拉排序 瀏覽:610
春雪食品有什麼產品 瀏覽:229
車險怎麼代理保險 瀏覽:623
怎麼看狗幣交易了多少 瀏覽:246
微信上小程序怎麼綁定手機號 瀏覽:193
為什麼數據網路延遲一直100 瀏覽:990