Latest web development tutorials

ملف روبي المدخلات والمخرجات

تقدم روبي مجموعة من أنا الأساليب المتعلقة O / نفذت في (النواة) وحدة النواة. ويستمد كل طريقة الإدخال / الإخراج من الطبقة IO.

يوفرIOعن النهج القائم على الطبقة، مثلالقراءة، والكتابة، ويحصل، يضع،يقوم readline، getcوprintf.

وسيكون هذا القسم شرح جميع وظائف I / O المتاحة على روبي. لمزيد من الوظائف، يرجى الاطلاع على الطبقةIOروبي.

يضعالبيان

في المقطع السابق، يمكنك تعيين متغير، ومن ثم استخدام النسخة المطبوعة بيانيضع.

يضعبيان يشير إلى أن البرنامج يعرض القيم المخزنة في المتغيرات. وهذا إضافة صف جديد في نهاية كل سطر.

أمثلة

#!/usr/bin/ruby

val1 = "This is variable one"
val2 = "This is variable two"
puts val1
puts val2

تشغيل إخراج المثال أعلاه هو:

This is variable one
This is variable two

يحصلالإعلان

يحصلبيان يمكن استخدامها للحصول على إدخال المستخدم من الشاشة القياسية دعا STDIN.

أمثلة

يوضح التعليمة البرمجية التالية كيفية استخدام يحصل على تصريح. سوف رمز مطالبة المستخدم لإدخال القيمة التي سيتم تخزينها في فال متغير، ستتم طباعة المباراة النهائية على STDOUT.

#!/usr/bin/ruby

puts "Enter a value :"
val = gets
puts val

تشغيل إخراج المثال أعلاه هو:

Enter a value :
This is entered value
This is entered value

بيانputc

ويضعبيان مختلفة، وبيانيضعإخراج السلسلة بأكملها على الشاشة، في حين بيانputcيمكن استخدامها لانتاج تسلسل أحرف.

أمثلة

إخراج التعليمات البرمجية التالية فقط حرف H:

#!/usr/bin/ruby

str="Hello Ruby!"
putc str

تشغيل إخراج المثال أعلاه هو:

H

البياناتالمطبوعة

طباعةالبياناتويضعبيانا مماثلا. والفرق الوحيد هو أنه بعديضعالبيان ان الناتج القفز إلى السطر التالي، في حين أن استخدام العبارةالطباعة،يتم وضع المؤشر على نفس السطر.

أمثلة

#!/usr/bin/ruby

print "Hello World"
print "Good Morning"

تشغيل إخراج المثال أعلاه هو:

Hello WorldGood Morning

فتح وإغلاق الملفات

اعتبارا من الآن، لديك لقراءة والكتابة إلى المدخلات والمخرجات القياسية. الآن، ونحن سوف ننظر في كيفية ملفات البيانات الفعلية.

طريقةFile.new

يمكنك إنشاء واستخدام كائنملفلقراءة طريقةFile.newأو الكتابة أو القراءة والكتابة والقراءة وأذونات اعتمادا على معايير وضع الكتابة. وأخيرا، يمكنك استخدام طريقةFile.closeلإغلاق الملف.

قواعد

aFile = File.new("filename", "mode")
   # ... 处理文件
aFile.close

طريقةFile.open

يمكنك إنشاء كائن ملف جديد باستخدام طريقةFile.open،ويتم تعيين الكائن إلى ملف ملف. ومع ذلك، هناك فرق واحد بين وسائلFile.openوFile.new. والفرق هو طريقةFile.openيمكن أن تترافق مع الكتلة، ولكن ليس طريقةFile.new.

File.open("filename", "mode") do |aFile|
   # ... process the file
end

يسرد الجدول التالي الملفات المفتوحة من وسائط مختلفة:

模式描述
r只读模式。文件指针被放置在文件的开头。这是默认模式。
r+读写模式。文件指针被放置在文件的开头。
w只写模式。如果文件存在,则重写文件。如果文件不存在,则创建一个新文件用于写入。
w+读写模式。如果文件存在,则重写已存在的文件。如果文件不存在,则创建一个新文件用于读写。
a只写模式。如果文件存在,则文件指针被放置在文件的末尾。也就是说,文件是追加模式。如果文件不存在,则创建一个新文件用于写入。
a+读写模式。如果文件存在,则文件指针被放置在文件的末尾。也就是说,文件是追加模式。如果文件不存在,则创建一个新文件用于读写。

قراءة وكتابة ملفات

ويمكن أيضا أسلوب بسيط I / O أن تستخدم لكافة الكائنات ملف. لذلك، يحصل يقرأ خط منالإدخال القياسي،aFile.gets aFile يقرأ خط من كائن ملف.

ومع ذلك، I / O كائن يوفر مجموعة إضافية من طرق الوصول، يوفر لنا الراحة.

طريقةsysread

يمكنك استخدامsysreadطريقة لقراءة محتويات الملف. عند استخدام sysread الطريقة، يمكنك استخدام أي طريقة واحدة لفتح الملف. على سبيل المثال:

ما يلي هو ملف إدخال النص:

This is a simple text file for testing purpose.

الآن دعونا نحاول قراءة الملف:

#!/usr/bin/ruby

aFile = File.new("input.txt", "r")
if aFile
   content = aFile.sysread(20)
   puts content
else
   puts "Unable to open file!"
end

وهذا البيان يدخل الأحرف 20 الأولى من الملف. سيتم وضع مؤشر الملف في موقف في الملف 21 حرفا.

طريقةsyswrite

يمكنك استخدامsyswriteطريقة الكتابة إلى ملف. عند استخدام syswrite طريقة، تحتاج لفتح ملف في وضع الكتابة. على سبيل المثال:

#!/usr/bin/ruby

aFile = File.new("input.txt", "r+")
if aFile
   aFile.syswrite("ABCDEF")
else
   puts "Unable to open file!"
end

تتم كتابة البيانات "ABCDEF" إلى ملف.

طريقةeach_byte

هذه الطريقة ينتمي إلىملف فئة.Each_byte أسلوب التكرار قادر على سلسلة كل حرف. النظر في أمثلة التعليمات البرمجية التالية:

#!/usr/bin/ruby

aFile = File.new("input.txt", "r+")
if aFile
   aFile.syswrite("ABCDEF")
   aFile.rewind
   aFile.each_byte {|ch| putc ch; putc ?. }
else
   puts "Unable to open file!"
end

واحدا تلو حرف واحد يتم تمرير الفصل متغير، ومن ثم عرضها على الشاشة، كما هو مبين أدناه:

A.B.C.D.E.F.s. .a. .s.i.m.p.l.e. .t.e.x.t. .f.i.l.e. .f.o.r. .t.e.s.t.i.n.g. .p.u.r.p.o.s.e...

طريقةIO.readlines

الملففئة هي فئة فرعية من فئة IO. له الدرجة IO أيضا بعض الطرق لمعالجة الملفات.

IO.readlinesمن الدرجة IO طريقة. طريقة التدريجي إرجاع محتويات الملف. يوضح التعليمة البرمجية التالية طريقة استخدامIO.readlines:

#!/usr/bin/ruby

arr = IO.readlines("input.txt")
puts arr[0]
puts arr[1]

في هذا الرمز، المتغير هو وصول مجموعة. كل صف هو ملف وصول مجموعةinput.txtعنصر. لذلك، آر [0] سوف تحتوي على السطر الأول، وآر [1] سوف تحتوي على السطر الثاني من الملف.

طريقةIO.foreach

إرجاع الأسلوب أيضا الانتاج تدريجيا.Foreachبين أساليب مختلفة وأساليبreadlinesيرتبط كتلة طريقةforeach.ومع ذلك، خلافا للطريقةreadlines،طريقةforeachبدلا من العودة صفيف. على سبيل المثال:

#!/usr/bin/ruby

IO.foreach("input.txt"){|block| puts block}

مرت هذا الرمز سيتماختبارمحتويات ملف كتلة التدريجي متغير، ثم سيتم عرض الإخراج على الشاشة.

إعادة تسمية وحذف الملفات

يمكنك إعادة تسمية وحذف الملفاتإعادة تسميةوحذف الطرق.

إعادة تسمية المثال التالي ملف موجود بالفعلtest1.txt:

#!/usr/bin/ruby

# 重命名文件 test1.txt 为 test2.txt
File.rename( "test1.txt", "test2.txt" )

المثال التالي لحذفtest2.txtملفموجود:

#!/usr/bin/ruby

# 删除文件 test2.txt
File.delete("text2.txt")

وضع ملف والملكية

استخدامشمودلتغيير الأسلوب مع نمط قناع أو أذونات الملف / قائمة الوصول:

أمثلة من التغييرات التالية لوضع ملفTEST.TXTالقائمة هي قيمة قناع:

#!/usr/bin/ruby

file = File.new( "test.txt", "w" )
file.chmod( 0755 )

يسرد الجدول التالي أقنعة مختلفة يمكن استخدام طريقةتطبيق التصريح:

掩码描述
0700rwx 掩码,针对所有者
0400r ,针对所有者
0200w ,针对所有者
0100x ,针对所有者
0070rwx 掩码,针对所属组
0040r ,针对所属组
0020w ,针对所属组
0010x ,针对所属组
0007rwx 掩码,针对其他人
0004r ,针对其他人
0002w ,针对其他人
0001x ,针对其他人
4000执行时设置用户 ID
2000执行时设置所属组 ID
1000保存交换文本,甚至在使用后也会保存

وثيقة وصول

الأمر التالي للتحقق من الملف قبل فتح ملف موجود مسبقا:

#!/usr/bin/ruby

File.open("file.rb") if File::exists?( "file.rb" )

الأمر التالي للاستعلام ما إذا كان الملف هو في الحقيقة ملف:

#!/usr/bin/ruby

# 返回 true 或false
File.file?( "text.txt" ) 

الأمر التالي للتحقق ما إذا كان اسم معين هو دليل:

#!/usr/bin/ruby

# 一个目录
File::directory?( "/usr/local/bin" ) # => true

# 一个文件
File::directory?( "file.rb" ) # => false

هل الأمر التالي للتحقق من ملف للقراءة، للكتابة، قابل للتنفيذ:

#!/usr/bin/ruby

File.readable?( "test.txt" )   # => true
File.writable?( "test.txt" )   # => true
File.executable?( "test.txt" ) # => false

يتحقق الأمر التالي حجم الملف الى نقطة الصفر:

#!/usr/bin/ruby

File.zero?( "test.txt" )      # => true

الأمر التالي إرجاع حجم الملف:

#!/usr/bin/ruby

File.size?( "text.txt" )     # => 1002

تم استخدام الأمر التالي للتحقق نوع الملف:

#!/usr/bin/ruby

File::ftype( "test.txt" )     # => file

طريقة ftype بإرجاع قيمة التالية لتحديد نوعالملف: ملف أو دليل characterSpecial، blockSpecial، يخرج أولا، وصلة، ومأخذأو غير معروف.

يتم استخدام الأمر التالي للتحقق من ملف تم إنشاء أو تعديل أو وقت الوصول الماضي:

#!/usr/bin/ruby

File::ctime( "test.txt" ) # => Fri May 09 10:06:37 -0700 2008
File::mtime( "text.txt" ) # => Fri May 09 10:44:44 -0700 2008
File::atime( "text.txt" ) # => Fri May 09 10:45:01 -0700 2008

روبي دليل

وترد جميع الملفات في الدليل، يوفر روبي لمعالجة الملفات والدلائل.ملفالطبقات للعمل معالملفات، والطبقاتدير لدليل العمل.

تصفح الكتالوج

لتغيير الدليل في برنامج روبي، يرجى استخدامDir.chdir.أمثلة من التغييرات التالية إلى الدليل الحالي هو/ البيرة / بن.

Dir.chdir("/usr/bin")

يمكنك عرضDir.pwdالدليلالحالي:

puts Dir.pwd # 返回当前目录,类似 /usr/bin

يمكنك استخدامDir.entriesالحصول على قائمة من الملفات والدلائل داخل الدليل المحدد:

puts Dir.entries("/usr/bin").join(' ')

Dir.entriesبإرجاع صفيف يحتوي على جميع الدليل المحدد. يوفرDir.foreachالوظيفة نفسها:

Dir.foreach("/usr/bin") do |entry|
   puts entry
end

الحصول على قائمة دليل من وسيلة أكثر إيجازا هو أسلوب باستخدام فئة مجموعة دير:

Dir["/usr/bin/*"]

إنشاء دليل

Dir.mkdirيمكن استخدامها لإنشاء الدليل:

Dir.mkdir("mynewdir")

يمكنك أيضا تعيين الأذونات على الدليل الجديد (وليس القائمة الدليل) اعتمدت MKDIR:

ملاحظة: قناع 755 صاحب مجموعة (مالك)، وينتمي إلى مجموعة (مجموعة)، الجميع (العالم [أي شخص]) أذونات rwxr-XR-x، حيث ص = قراءة القراءة، ث = إرسال الكتابة، س = تنفيذ الإعدام.

Dir.mkdir( "mynewdir", 755 )

إزالة دليل

Dir.deleteاستخدامها لحذف الدلائل.Dir.unlinkوDir.rmdir تؤدي نفس الوظيفة، يوفر لنا الراحة.

Dir.delete("testdir")

إنشاء ملف دليل مؤقت و

يتم إنشاء الملفات المؤقتة التي هي ببساطة في عملية تنفيذ البرنامج، ولكن لا معلومات لا تخزن بشكل دائم.

يوفرDir.tmpdirمسار على الدليل المؤقت النظام الحالي، الذي افتراضيا، ولكن غير متوفر. لجعلDir.tmpdirالمتاحة، مع 'tmpdir "المطلوب هو ضروري.

يمكنكDir.tmpdirوFile.join تستخدم معا لإنشاء منصة مستقلة الملفات المؤقتة:

require 'tmpdir'
   tempfilename = File.join(Dir.tmpdir, "tingtong")
   tempfile = File.new(tempfilename, "w")
   tempfile.puts "This is a temporary file"
   tempfile.close
   File.delete(tempfilename)

هذا الرمز إنشاء ملف مؤقت فيه لكتابة البيانات، ومن ثم حذف الملف. يحتوي المكتبة القياسية روبي أيضا مكتبة اسمهTempfileالمكتبة يمكن استخدامها لإنشاء ملف مؤقت:

require 'tempfile'
   f = Tempfile.new('tingtong')
   f.puts "Hello"
   puts f.path
   f.close

المدمج في وظائف

وفيما يلي قائمة كاملة من الملفات والدلائل في وظائف روبي الذي بني في: