Tiện ích Sẵn sàng Sản xuất Đơn giản cho Thao tác Đọc-Ghi tệp I / O • Crunchify – cách lưu dữ liệu trong java

Làm cách nào để ghi một đối tượng vào tệp và đọc lại nó? Java khá tuyệt vời với rất nhiều API và với Java 8, chúng tôi được kích hoạt đầy đủ với nhiều API hơn như

Bạn đang xem: cách lưu dữ liệu trong java

Trong Java Cách lưu và tải dữ liệu từ tệp – Productio đơn giản …

Làm cách nào để ghi một đối tượng vào tệp và đọc lại nó?

Java khá tuyệt vời với rất nhiều API và với Java 8, chúng tôi được kích hoạt đầy đủ với nhiều API hơn như Lambda , Tham chiếu phương thức, Phương thức mặc định, Tốt hơn loại giao diện , Lặp lại chú thích , Tham số phương pháp phản ánh và nhiều hơn nữa.

Đôi khi, tôi đã viết một bài báo về Cách đọc đối tượng JSON từ tệp bằng Java. Đó là thao tác đọc trong java đơn giản . Nhưng trong hướng dẫn này, chúng ta sẽ lưu và tải dữ liệu từ tệp với Tiện ích Java sẵn sàng sản xuất đơn giản.

Chúng tôi không chỉ lưu đối tượng đơn giản mà chúng tôi sẽ tạo Java POJO đơn giản thuộc loại CrunchifyCompany và sẽ lưu và truy xuất đối tượng bằng GSON < / mã>. Bạn cần có phụ thuộc bên dưới để chạy chương trình bên dưới.

Đặt dưới đây sự phụ thuộc vào dự án maven của bạn. Nếu bạn có Dự án web động và muốn chuyển đổi nó thành dự án Maven thì hãy làm theo các bước sau .

1

2

3

4

5

& lt;

phụ thuộc

& gt;

< / p>

& lt;

groupId

& gt;

com

.

google

.

.

gson

& lt;

/

groupId

& gt; < / p>

& lt;

craftId

& gt;

gson

& lt;

/

craftId

& gt;

& lt;

phiên bản

& gt;

2.3

& lt;

/

phiên bản

& gt;

& lt;

/

sự phụ thuộc

& gt;

Đây là quy trình:

  • Tạo lớp CrunchifyReadWriteUtilityForFile.java
  • Tạo lớp bên trong riêng tư CrunchifyCompany với hai trường
    • private int

      nhân viên ;

    • private

      String

      tên công ty

      ;

  • Tạo đối tượng crunchify bên trong phương thức chính
  • < li> Chuyển đổi đối tượng thành Gson để nó sẽ được lưu vào tệp

  • Sử dụng phương thức crunchifyWriteToFile để lưu dữ liệu vào tệp trong Java
  • Sử dụng phương thức crunchifyReadFromFile để truy xuất dữ liệu từ tệp trong Java

Đây là một ví dụ hoàn chỉnh:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

< p class = "crayon-num"> 18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

< p class = "crayon-num"> 49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

>

71

72

73

74

75

76

77

78

79

80

>

81

82

83

84 < / p>

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

< p class = "crayon-num"> 104

105

106

107

108

109

110

111

112

113

< p class = "crayon-num"> 114

115

116

117

118

119

120

121

>

122

123

124

125

126

127

128

129

130

131

>

132

133

134

135

136

137

138

139

gói

crunchify

.

com

.

hướng dẫn

;

nhập

< p class = "crayon-h">

com

.

google

.

gson

. < / p>

Gson

;

nhập

com

.

google

.

gson

.

stream

< p class = "crayon-sy">.

JsonReader

;

nhập

java

.

io

.

*

;

< p class = "crayon-r"> nhập

java

.

nio

.

bộ chữ < / p>

.

StandardCharsets

;

/ **

* @author Crunchify.com

* Tiện ích sản xuất sẵn sàng tốt nhất và đơn giản để lưu / tải

* (đọc / ghi) dat a from / to file

* /

công khai

lớp

CrunchifyReadWriteUtilityForFile

{

private

< p class = "crayon-m"> tĩnh

cuối cùng

Chuỗi

crunchifyFileLocation

=

"/ Users / appshah / Documents / c runchify.txt "

;

riêng tư

tĩnh

cuối cùng

Gson

gson

=

mới

Gson

(

)

;

< p class = "crayon-line" id = "crayon-62cce4ed724ae198652061-19">

// Lớp CrunchifyComapny có hai trường

// - Nhân viên

< p class = "crayon-line" id = "crayon-62cce4ed724ae198652061-22 ">

// - Tên công ty

private

static

lớp

CrunchifyCompany

{

riêng tư

int

nhân viên

;

private

Chuỗi

companyName

;

public

int

getE Employees

(

)

{

return

nhân viên

;

}

công khai

vô hiệu

setE Nhân viên

(

int

nhân viên

) < / p>

{

cái này

.

nhân viên

=

nhân viên

;

}

< / p>

công khai

Str ing

getCompanyName

(

< p class = "crayon-sy">)

{

quay lại

companyName

;

< p class = "crayon-h">

}

public

void

setCompanyName

(

Chuỗi

companyName

)

{

cái này

.

companyName

=

companyName

;

}

}

< p class = "crayon-h">

// Phương pháp chính

public

tĩnh

void

main

(

Chuỗi

[

]

args

)

{

CrunchifyCompany

crunchify

=

mới

CrunchifyCompany

(

)

;

crunchify

.

setCompanyName

(

"Crunchify.com" < / p>

)

;

crunchify

.

setE Employees

(

4

)

;

< p class = "crayon-c"> // Lưu dữ liệu vào tệp

crunchifyWriteToFile

(

gson

.

toJson

(

crunchify

)

)

;

// Truy xuất dữ liệu từ tệp

< / p>

crunchifyReadFromFile

(

)

;

}

// Lưu vào Tiện ích tệp

private

tĩnh

void

< p class = "crayon-h">

crunchifyWriteToFile

(

Chuỗi

myData

)

{

Tệp

crunchifyFile

=

mới

Tệp

(

crunchifyFileLocation

< p class = "crayon-sy">)

;

< p class = "crayon-line" id = "crayon-62cce4ed724ae198652061-66">

// being (): Kiểm tra xem tệp hoặc thư mục được biểu thị bằng tên đường dẫn trừu tượng này có tồn tại hay không.

nếu

(

!

crunchifyFile

.

tồn tại

(

)

)

{

thử

{

Tệp

thư mục

=

mới

Tệp

(

crunchifyFile

.

getParent

(

)

)

;

< / p>

if

(

!

thư mục

.

tồn tại

(

)

)

< p class = "crayon-sy"> {

// mkdirs (): Tạo thư mục được đặt tên theo tên đường dẫn trừu tượng này, bao gồm mọi thư mục mẹ cần thiết nhưng không tồn tại .

// Lưu ý rằng nếu thao tác này không thành công, nó có thể đã thành công trong việc tạo một số thư mục mẹ cần thiết.

thư mục

.

mkdirs

(

)

;

}

// createNewFile (): Tạo nguyên tử một tệp mới, trống được đặt tên theo tên đường dẫn trừu tượng này nếu và chỉ khi tệp có tên này chưa tồn tại.

// Kiểm tra sự tồn tại của tệp và việc tạo tệp nếu nó không tồn tại là một thao tác đơn lẻ

// đó là nguyên tử đối với tất cả các hoạt động khác của hệ thống tệp có thể ảnh hưởng đến tệp.

crunchifyFile

.

createNewFile

(

)

;

}

bắt

(< / p>

IOException

e

)

{

crunchifyLog

(

" Đã xảy ra ngoại lệ: "

+

e

.

toString

(

)

)

;

}

}

thử

{

// Lớp tiện lợi để viết tệp ký tự

FileWriter

crunchifyWriter

;

crunchifyWriter

=

mới

FileWri ter

(

crunchifyFile

.

getAbsoluteFile

(

)

,

true

)

;

// Ghi văn bản vào luồng xuất ký tự

BufferedWriter

bufferWriter

=

new

< / p>

BufferedWriter

(

crunchifyWriter

)

;

bufferWriter

.

viết < / p>

(

myData

.

toString

(

)

)

;

bufferWriter

.

đóng lại

(

)

;

crunchifyLog

(

"Dữ liệu công ty được lưu tại vị trí tệp:"

+

crunchifyFileLocation

+

" Dữ liệu: "

+

myData

+

"\ n"

)

;

< p class = "crayon-sy">}

bắt

(

IOException

e

)

{

crunchifyLog

< p cl ass = "crayon-sy"> (

"Hmm .. Đã xảy ra lỗi khi lưu dữ liệu Công ty vào tệp"

+

e

.

toString

(

)

)

;

}

}

< / p>

// Đọc từ Tiện ích tệp

công khai

tĩnh

void

crunchifyReadFromFile

(

)

{

// Tệp: Biểu diễn trừu tượng của tệp và tên đường dẫn thư mục.

// Giao diện người dùng và hệ điều hành sử dụng chuỗi tên đường dẫn phụ thuộc vào hệ thống để đặt tên tệp và thư mục.

Tệp

crunchifyFile

=

new

< / p>

Tệp

(

crunchifyFileLocation

)

;

nếu

(

!

crunchifyFile

.

tồn tại

(

< p class = "crayon-sy">)

)

crunchifyLog

(

"Tệp không tồn tại"

)

;

InputStreamReader

isReader

;

thử

< p class = "crayon-h">

{

isReader

=

mới

InputStreamReader < / p>

(

mới

FileInputStream

(

crunchifyFile

)

,

StandardCharsets

.

UTF_8

)

;

JsonReader

myReader

=

mới

JsonReader

(

isReader < / p>

)

;

CrunchifyCompany

công ty

=

gson

.

fromJson

(

myReader

,

CrunchifyCompany

.

lớp

)

;

crunchifyLog

(

"Tên công ty:"

+

công ty

.

getCompanyName

(

)

)

;

int

nhân viên

=

công ty

.

getE Employees

(

)

;

crunchifyLog

(

"# Nhân viên:"

+

Số nguyên

.

toString

(

nhân viên

)

)

;

< p class = "crayon-sy">}

bắt

(

Ngoại lệ

e

)

{

crunchifyLog

(

" lỗi tải bộ đệm ẩn từ tệp "

+

e

.

toString

(

< p class = "crayon-sy">)

)

;

}

crunchifyLog

(

"\ nCông ty Dữ liệu được tải thành công từ tệp"

+

crunchifyFileLocation

)

;

}

riêng tư

tĩnh

< / p>

void

crunchifyLog

(

Chuỗi

string

)

{

Hệ thống

.

ra

.

println

(

string

)

;

< p class = "crayon-line" id = "crayon-62cce4ed724ae198652061-137">

}

}

Đầu ra của bảng điều khiển Eclipse:

1

2

3

4

5

6

Dữ liệu công ty

< p class = "crayon-e"> đã lưu

tại

tệp

vị trí

:

/

Người dùng

/

appshah

/

Tài liệu

/

crunchify

.

txt

Dữ liệu

:

{

"nhân viên"

:

4

, < / p>

"companyName"

:

"Crunchify.com"

}

Công ty

Tên

:

Crunchify

.

com

# Nhân viên: 4

< p class = "crayon-line" id = "crayon-62cce4ed724b0888106213-6">

Công ty

Dữ liệu

đã tải

thành công

từ

tệp

/

Người dùng

/

appshah

/

Tài liệu

/

crunchify

.

txt

Đây là nội dung tệp crunchify.txt.

Khi tôi chạy chương trình hai lần , bạn thấy ở đây JSONObject hai lần vì chúng tôi đang nhắm mục tiêu thêm giá trị vào tệp crunchify.txt .

Tham gia thảo luận

Nếu bạn thích bài viết này, vui lòng chia sẻ nó trên phương tiện truyền thông xã hội . Bạn vẫn còn thắc mắc về một bài viết, hãy để lại bình luận cho chúng tôi.


Xem thêm những thông tin liên quan đến chủ đề cách lưu dữ liệu trong java

Hướng dẫn Lưu ảnh và duyệt ảnh trong java

  • Tác giả: Lê Anh Tú
  • Ngày đăng: 2021-06-09
  • Đánh giá: 4 ⭐ ( 9371 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Load ảnh trong java

Java nhập và xuất dữ liệu

  • Tác giả: codefly.vn
  • Đánh giá: 4 ⭐ ( 1882 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Cách đọc ghi file trong java

  • Tác giả: nguyenvanhieu.vn
  • Đánh giá: 3 ⭐ ( 3939 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: CÁCH ĐỌC GHI FILE TRONG JAVA. Xin chào các bạn lại là mình đây, hôm nay mình quyết định viết một bài để hướng dẫn các bạn cách đọc ghi file trong Java.

Biến và kiểu dữ liệu trong java

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 7212 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Biến và kiểu dữ liệu trong java là một trong những thứ mà bạn sẽ phải sử dụng rất nhiều khi lập trình. Việc hiểu rõ về biến và kiểu dữ liệu sẽ giúp bạn

Java: Quản lý siêu dữ liệu (File và File lưu các thuộc tính)

  • Tác giả: v1study.com
  • Đánh giá: 4 ⭐ ( 3801 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Quản lý siêu dữ liệu (File và File lưu các thuộc tính)

Giúp mình về đọc - lưu dữ liệu trong JFrame - Cộng đồng Java Việt Nam

  • Tác giả: congdongjava.com
  • Đánh giá: 4 ⭐ ( 9148 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mình có một giao diện quản lí nhân sự như sau

    Các nút mình đã làm hoàn chỉnh, riêng nút đọc file là mình làm vẫn còn lỗi mà mình chưa biết cách khắc...

Mảng (Array), cách sử dụng mảng trong java

  • Tác giả: thaynhuom.edu.vn
  • Đánh giá: 4 ⭐ ( 7871 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một trong những giải thuật liên quan đến dãy số, sắp xếp, lưu trữ danh sách,... thì không thể không nhắc đến mảng . . .

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách tạo máy chủ web trong Node.js bằng mô-đun HTTP - máy chủ web node js