প্রতিটি প্রোগ্রামিং ভাষায় আই / ও ফাইল ফাইল বন্ধ [বন্ধ]


127

এটি একটি সাধারণ প্রশ্ন থাকতে হবে যা সমস্ত প্রোগ্রামারদের সময়ে সময়ে হয়। আমি কিভাবে একটি পাঠ্য ফাইল থেকে একটি লাইন পড়তে পারি? তারপরে পরবর্তী প্রশ্নটি সর্বদা এটি কীভাবে আমি এটি আবার লিখব।

অবশ্যই আপনার বেশিরভাগই প্রতিদিনের প্রোগ্রামিংয়ে একটি উচ্চ স্তরের কাঠামো ব্যবহার করেন (যা উত্তরের ক্ষেত্রে ব্যবহার করা ভাল) তবে কখনও কখনও এটি কীভাবে নিম্ন স্তরে কীভাবে করা যায় তা জেনে ভালই লাগে।

আমি নিজেকে কিভাবে এটা করতে হয় তা জানা C, C++এবং Objective-C, কিন্তু এটা নিশ্চিত দেখতে এটি কিভাবে জনপ্রিয় ভাষায় সব সম্পন্ন, যদি শুধুমাত্র সাহায্য করতে আমাদের কি ভাষায় IO আমাদের ফাইলের করতে সম্পর্কে একটি ভালো সিদ্ধান্ত কুশলী হতে হবে। বিশেষ করে আমার মনে হয় এটা কিভাবে স্ট্রিং ম্যানিপুলেশন ভাষায় তার সম্পন্ন হলে, মত দেখতে আকর্ষণীয় হবে: python, rubyএবং অবশ্যই perl

সুতরাং আমি এখানে চিত্রিত করেছি যে আমরা একটি সম্প্রদায়ীয় সংস্থান তৈরি করতে পারি যা আমরা সকলেই আমাদের প্রোফাইলগুলিতে তারকাচিহ্নিত করতে পারি এবং যখন কোনও নতুন ভাষায় ফাইল I / O করার দরকার হয় তখন উল্লেখ করতে পারি । এক্সপোজারের কথা উল্লেখ না করে আমরা সকলেই এমন ভাষাগুলিতে পাব যা আমরা প্রতিদিনের ভিত্তিতে ডিল করি না।

আপনার এইভাবে উত্তর দেওয়া দরকার:

  1. " Fileio.txt " নামে একটি নতুন পাঠ্য ফাইল তৈরি করুন
  2. পাঠ্য ফাইলে প্রথম লাইন "হ্যালো" লিখুন।
  3. পাঠ্য ফাইলে দ্বিতীয় লাইন "বিশ্ব" যুক্ত করুন।
  4. ইনপুট স্ট্রিংয়ে দ্বিতীয় লাইন "ওয়ার্ল্ড" পড়ুন।
  5. কনসোলে ইনপুট স্ট্রিংটি মুদ্রণ করুন।

ব্যাখ্যা:

  • আপনার প্রতি উত্তর প্রতি এক প্রোগ্রামিং ভাষায় এটি কীভাবে করা যায় তা দেখাতে হবে।
  • ধরে নিই যে টেক্সট ফাইলটি আগে থেকেই নেই
  • প্রথম লাইনটি লেখার পরে আপনাকে পাঠ্য ফাইলটি খোলার দরকার নেই

ভাষার কোনও নির্দিষ্ট সীমা নেই। C, C++, C#, Java, Objective-Cসব মহান।

কিভাবে আপনি এটি কাজ করার জন্য জানেন তাহলে Prolog, Haskell, Fortran, Lisp, অথবা Basicতারপর ডানদিকে এগিয়ে যান দয়া করে।


9
এটির সাথে সমস্যাটি হ'ল এটি কোনও নির্দিষ্ট ভাষার সন্ধানে প্রদর্শিত হবে না যেমন এটি হয় না এবং প্রতিটি ভাষার সাথে এটি ট্যাগও করা যায় না।
ChrisF

21
কেন এই প্রশ্নটি বন্ধ তা আমি বুঝতে পারি না। এই সাইটটির উদ্দেশ্য মানুষকে তথ্য সন্ধান করতে সহায়তা করে না? যদি কেউ সি তে কীভাবে (আইও এর মতো) কিছু করতে হয় এবং পাইথনে একই জিনিস কীভাবে করতে হয় তা শিখতে চায়, তবে এটি তাদের উভয়কে পাশাপাশি থাকতে দেয় by
স্লাপআউট

18
আমিও বুঝতে পারি না কেন এটি বন্ধ রয়েছে। দেখে মনে হচ্ছে এটি ঠিক কারণ এটি "... স্বল্প পরিমান অক্ষরে ..." শব্দগুলি অন্তর্ভুক্ত করে না যা বেশ নির্বোধ। কোড গল্ফ একটি মজাদার অনুশীলন। তবে কী সমস্ত রোসটা-পাথরের প্রশ্নগুলি উত্তরগুলিতে ক্ষুন্ন, ক্ষুদ্র কোড তৈরি করা সত্যই কার্যকর?
স্পেন্সার নেলসন

12
আমি বুঝতে পারি না এটি কীভাবে একটি প্রশ্নোত্তর সাইটের সাথে খাপ খায়: কমপক্ষে কোড গল্ফের সাথে, উত্তরগুলিতে ভোট দেওয়ার জন্য কিছুটা উদ্দেশ্যমূলক মান রয়েছে: সবচেয়ে সংক্ষিপ্ত বা সবচেয়ে চতুর উত্তর সর্বাধিক ভোট পায়। এটি সহ: এটি কী, হাস্কেলের মতো কত লোক? এর মতো প্রশ্নগুলি কেবলমাত্র একটির জন্য তৈরি করা সিস্টেমে প্রতিটি সম্ভাব্য ধরণের সামগ্রীকে জুতা দেওয়ার চেষ্টা করার মতো। এটি পরিচালনা করার জন্য ইন্টারনেটের বাকীটি কী হয়েছে?

11
কেন এটি ভাল কাজ করে না। প্রতিটি পদ্ধতির উপকারিতা এবং কনস সম্পর্কে কোনও তথ্য নেই (কোন ভাষাগুলি কেবল একটি উপায়কে সমর্থন করে?)। ট্রেড অফগুলি এবং প্রতিটি ভাষায় গভীর সমস্যা নিয়ে কোনও আলোচনা নেই। সীমিত সুযোগ যা বোঝায় যে "প্রত্যেক ভাষাতে" প্রশ্নগুলির জন্য আলাদাভাবে বাজিলিয়নের প্রয়োজন। এবং সর্বোপরি প্রতিটি উত্তরের মানের কোনও সম্প্রদায়ের সংযোজন নেই। লোকেরা যখন তাদের ভোট দিচ্ছে তখন আমি কেন কোনও সংযম বলব না? কারণ প্রতিটি ভাষার জন্য একটি মাত্র উত্তর থাকার কথা রয়েছে এবং লোকেরা তাদের ক্ষেত্রে একাধিক বিকল্প দেখতে যথেষ্ট উত্তর পড়বে না।
ডিএমকেকে --- প্রাক্তন মডারেটর বিড়ালছানা

উত্তর:


48

পাইথন ঘ

with open('fileio.txt', 'w') as f:
   f.write('hello')
with open('fileio.txt', 'a') as f:
   f.write('\nworld')
with open('fileio.txt') as f:
   s = f.readlines()[1]
print(s)

ব্যাখ্যা

  • রিডলাইনস () ফাইলের সমস্ত লাইনের একটি তালিকা ফেরত দেয়। অতএব, পঠনরেখার () এর অনুরোধ ফাইলের প্রতিটি লাইন পড়ার ফলাফল দেয়। সেই নির্দিষ্ট ক্ষেত্রে রিডলাইনগুলি () ব্যবহার করা ভাল কারণ আমাদের পুরো ফাইলটি যাইহোক পড়তে হবে (আমরা এর শেষ লাইনটি চাই)। তবে যদি আমাদের ফাইলে অনেকগুলি লাইন থাকে এবং আমরা কেবল তার নবম লাইনটি প্রিন্ট করতে চাই তবে এটি সম্পূর্ণ ফাইলটি পড়া অপ্রয়োজনীয়। পাইথন-এ কোনও ফাইলের নবম লাইন পাওয়ার আরও কিছু ভাল উপায় এখানে রয়েছে: পাইথন 3-এ কী এক্সরেডলাইন () প্রতিস্থাপন করতে পারে?

  • বিবৃতি দিয়ে এটি কী? উইথ স্টেটমেন্টটি একটি কোড ব্লক শুরু করে যেখানে আপনি কলটি থেকে () খুলতে ফিরে আসা স্ট্রিম অবজেক্ট হিসাবে চলক চটি ব্যবহার করতে পারেন । যখন ব্লকটি শেষ হয়, অজগর f.close () কে স্বয়ংক্রিয়ভাবে কল করে। এটি গ্যারান্টি দেয় যে আপনি যখনই ব্লকটি বাইরে বেরোন তখনই আপনি বন্ধ হয়ে যাবেন বা আপনি যখন ব্লক থেকে বেরিয়ে আসুন না কেন (আপনি যদি কোনও হাতছাড়া ব্যতিক্রমের মাধ্যমে প্রস্থানও করেন)। আপনি স্পষ্টভাবে f.close () কল করতে পারেন, কিন্তু যদি আপনার কোড একটি ব্যতিক্রম উত্থাপন করে এবং আপনি f.close () কলটিতে না পান তবে কী হবে? এজন্য স্টেটমেন্ট সহ দরকারী।

  • প্রতিটি ক্রিয়াকলাপের আগে আপনাকে ফাইলটি আবার খোলার দরকার নেই। আপনি ব্লক সহ একটিতে পুরো কোডটি লিখতে পারেন।

    with open('fileio.txt', 'w+') as f:
        f.write('hello')
        f.write('\nworld')
        s = f.readlines()[1]
    print(s)
    

    তিনটি ক্রিয়াকলাপের মধ্যে পার্থক্যটিকে গুরুত্ব দিতে আমি ব্লক সহ তিনটি ব্যবহার করেছি: লিখুন (মোড 'ডাব্লু'), সংযোজন (মোড 'এ'), পড়ুন (মোড 'আর', ডিফল্ট)।


19
আমি সত্যিই মনে করি না যে কারও কখনও readlines()[1]উদাহরণ কোডে লেখা উচিত । এই ক্ষেত্রে আপনি ফাইলটি কেবল দুটি লাইন থাকতে পারে জানেন, কিন্তু অন্য কেউ নির্দ্বিধায় এটি ভাল সমাধান মনে করে এটি একটি মিলিয়ন-লাইন ফাইলে চেষ্টা করে দেখতে পাবে এবং একটি খারাপ অভ্যাস পেতে পারে।
পোরকুলাস

14
রিডলাইনগুলি সহ) @ পারকুলাস () আমরা ফাইলের সমস্ত লাইন দিয়ে যাই না। এটি অজগর read. রিডলাইনস () একটি পুনরুক্তি (তালিকা নয়) প্রদান করে returns সুতরাং কেবলমাত্র ফাইলের প্রথম দুটি লাইন পড়তে হবে be এটি পাইথন 2 এর এক্স্রেডলাইনের () পাইকার মতো (যা পাইথন 3 তে বিদ্যমান নেই)।
21:55 এ স্নাকাইল

7
@ স্নাকিল: আপনি দয়া করে কোনও পুনরাবৃত্তিকে readlines()(কোনও তালিকা নয়) রিটার্নের সমর্থনে কিছু উদ্ধৃত করতে পারেন কেবল একটি নোট: আপনি সাধারণত কোনও পুনরাবৃত্তিকে সূচক করতে পারেন না।
সাইলেন্টগোস্ট

8
@ সাইলেন্টগোস্ট আমি "পাইথন 3 তে ডাইভ" উদ্ধৃত করছি: "রিডলাইনস () পদ্ধতিটি এখন একটি পুনরাবৃত্তিকে রিটার্ন দেয়, সুতরাং এটি এক্সথ্রেডলাইনগুলি () পাইথন 2 তে যেমন ছিল তেমন দক্ষ"। এই বিবৃতিটি অনুসন্ধান করুন: diveintopython3.org/porting-code-to-python-3-with-2to3.html । দ্বিতীয়ত, পাইথন 3 এ আপনি একটি পুনরুক্তি সূচক করতে পারেন। শেলটিতে (10) [4] প্রকার টাইপ করে পাইথন 3 এ পাইথন 2 এর বিপরীতে যেখানে পরিসর () একটি তালিকা ফেরায়) এর একটি পুনরাবৃত্তি প্রদান করে। নোট করুন যে পরিসর (এন) [i] ও (i) এ সম্পন্ন হয়েছে, ও (1) নয় ও (এন) তে হবে।

5
@ স্নাকিল: আপনার মন্তব্যগুলি বেশ কয়েকটি স্তরে ভুল। প্রথমে রিডলাইনগুলি পাইথন 3 এ একটি তালিকা দেয় (এটি পরীক্ষা করে দেখুন)। সুতরাং প্রদত্ত কোডটি পুরো ফাইলটি পড়বে। দ্বিতীয়ত, পুনরাবৃত্তাকারগুলিকে পাইথন 2 বা 3 তে সূচি দেওয়া যায় না range
ইন্টারজয়

242

LOLCODE

চশমাটি কমপক্ষে বলতে স্কেচিযুক্ত, তবে আমি যথাসাধ্য চেষ্টা করেছি। ভাটা শুরু হোক! :) আমি এখনও এটি একটি মজাদার অনুশীলন বলে মনে করি।

HAI
CAN HAS STDIO?
PLZ OPEN FILE "FILEIO.TXT" ITZ "TehFilez"?
    AWSUM THX
        BTW #There is no standard way to output to files yet...
        VISIBLE "Hello" ON TehFilez
        BTW #There isn't a standard way to append to files either...
        MOAR VISIBLE "World" ON TehFilez
        GIMMEH LINES TehLinez OUTTA TehFilez
        I HAS A SecondLine ITZ 1 IN MAH TehLinez
        VISIBLE SecondLine
    O NOES
        VISIBLE "OH NOES!!!"
KTHXBYE

28
আক্ষরিক অর্থে আমাকে ... lol করার জন্য এই সম্পত্তিটি পাওয়ার জন্য অন্য কোনও ভাষা আছে বলে আমি মনে করি না।
আয়নু জি স্টান

85
এটা কি দুঃখজনক যে আমি মনে করি যে আমি অন্য কিছু দেখেছি তার চেয়ে ললকোডি বেশি পঠনযোগ্য?
জোয়েল

13
এটি একটি প্রাকৃতিক ভাষার মতো কতটা অনুভব করে তা ইন্টারেস্টিং করছে।
অভিনব সরকার

19
আপনি নিচে নামার প্রত্যাশা করছেন তা বলা এসও-র উপরোক্তদের জন্য একটি গ্যারান্টি কারণ বিপরীত মনোবিজ্ঞান কোনও প্রোগ্রামারের জন্য একটি প্রতিচ্ছবি action
ব্রক উলফ

13
পিএলজেড? / অ্যাডব্লিউএম THX / হে NOES কেবল ভয়ঙ্কর। এটা আমার কাছে সর্বশক্তিমান বলে মনে হচ্ছে।
Calvin1602

43

ব্রেন *** ট

,------------------------------------------------>,------------------------------------------------>,------------------------------------------------>[-]+++++++++>[-]+++++++++>[-]+++++++++<<<<<[>>>>>>+>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>>-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<<<[>>>>>>+>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]>>[-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<<<->>>->>>>>[-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>][-]<<<<<<<[>>>>>+>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<<->>>->>>>[-]<<<<<<<[>>>>>+>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>][-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<->>>->>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<[-]+<[-]+<<<<<<[>>>>>>[-]<<<<<<[-]]>>>>>>[[-]+<<<<<[>>>>>[-]<<<<<[-]]>>>>>[[-]+<<<<[>>>>[-]<<<<[-]]>>>>[[-]+<<<[>>>[-]<<<[-]]>>>[[-]+<<[>>[-]<<[-]]>>[[-]+<[>[-]<[-]]>[[-]+++++++++++++++++++++++++++++++++++++++++++++++++.-...>[-]<[-]]<>[-]]<<>>[-]]<<<>>>[-]]<<<<>>>>[-],------------------------------------------------>,------------------------------------------------>,------------------------------------------------>[-]+++++++++>[-]+++++++++>[-]+++++++++<<<<<[>>>>>>+>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>>-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<<<[>>>>>>+>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]>>[-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<<<->>>->>>>>[-]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>][-]<<<<<<<[>>>>>+>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<<->>>->>>>[-]<<<<<<<[>>>>>+>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>][-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<->>>->>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<[-]+<[-]+<<<<<<[>>>>>>[-]<<<<<<[-]]>>>>>>[[-]+<<<<<[>>>>>[-]<<<<<[-]]>>>>>[[-]+<<<<[>>>>[-]<<<<[-]]>>>>[[-]+<<<[>>>[-]<<<[-]]>>>[[-]+<<[>>[-]<<[-]]>>[[-]+<[>[-]<[-]]>[[-]+++++++++++++++++++++++++++++++++++++++++++++++++.-...>[-]<[-]]<>[-]]<<>>[-]]<<<>>>[-]]<<<<>>>>[-]]<<<<<>>>>>[-]]<<<<<<>>>>>>>[<<<<<<<<[>>>>>>+>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]>[-]++++++++++<<+<<<<<<+>>>>>>>>>>>[-]<<<<<[>>>+>>+<<<<<-]>>>>>[<<<<<+>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<->>->>>[-]<<<<<[>>>+>>+<<<<<-]>>>>>[<<<<<+>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<<<<[-]+<[>[-]<[-]]>[[-]+>[<[-]>[-]]<[<<<<<<<[-]<+>>>>>>>>[-]]><[-]]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]>[-]++++++++++>>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<->>>->>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<<<<[-]+<<[>>[-]<<[-]]>>[[-]+>[<[-]>[-]]<[<<<<<<<<[-]<+>>>>>>>>>[-]]><[-]]<<<<<<<<<++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++.>>>>>>>>[-]]]<<<<<>>>>>[-]]<<<<<<>>>>>>>[<<<<<<<<[>>>>>>+>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]>[-]++++++++++<<+<<<<<<+>>>>>>>>>>>[-]<<<<<[>>>+>>+<<<<<-]>>>>>[<<<<<+>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<->>->>>[-]<<<<<[>>>+>>+<<<<<-]>>>>>[<<<<<+>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<<<<[-]+<[>[-]<[-]]>[[-]+>[<[-]>[-]]<[<<<<<<<[-]<+>>>>>>>>[-]]><[-]]<<<<<<<<[>>>>>>+>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]>[-]++++++++++>>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>[<<<<<<->>>->>>[-]<<<<<<[>>>>+>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>>-]<<<[>>+>+<<<-]>>>[<<<+>>>-][-]<<[>>[-]<[>[-]+<[-]]<[-]]>[-]>]<<<<[-]+<<[>>[-]<<[-]]>>[[-]+>[<[-]>[-]]<[<<<<<<<<[-]<+>>>>>>>>>[-]]><[-]]<<<<<<<<<++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++.>>>>>>>>[-]]

26
আপনি একটি '-' মিস করেছেন? ;)
আইডেন বেল

2
ওহ চেষ্টা। শুধু রেকর্ডের জন্য, লিখতে কত সময় লাগল?
রিদুইডেল

এবং আপনি একাধিক লাইনে বিভক্ত করতে পারবেন না? সর্বকালের সেরা ভাষা
TheIronKnuckle

42

ব্যবসায়িক কাজে ব্যবহৃত এক বিশেষ ধরনের কম্পিউটার ভাষা

যেহেতু অন্য কেউ করেনি ......

IDENTIFICATION DIVISION.
PROGRAM-ID.  WriteDemo.
AUTHOR.  Mark Mullin.
* Hey, I don't even have a cobol compiler

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT StudentFile ASSIGN TO "STUDENTS.DAT"
        ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD TestFile.
01 TestData.
   02  LineNum        PIC X.
   02  LineText       PIC X(72).

PROCEDURE DIVISION.
Begin.
    OPEN OUTPUT TestFile
    DISPLAY "This language is still around."

    PERFORM GetFileDetails
    PERFORM UNTIL TestData = SPACES
       WRITE TestData 
       PERFORM GetStudentDetails
    END-PERFORM
    CLOSE TestFile
    STOP RUN.

GetFileDetails.
    DISPLAY "Enter - Line number, some text"
    DISPLAY "NXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    ACCEPT  TestData.

2
খাঁটি অদ্ভুততার জন্য এটি 1 মিলিয়নেরও বেশি বার ভোট দেওয়া উচিত +1
ব্রুক উলফ

1
"এই ভাষাটি এখনও প্রায় রয়েছে" " = ডি
অনুপস্থিত

3
বাড়িতে এটি চেষ্টা করার সময় সতর্কতা অবলম্বন করুন। আপনার কোবোল সংকলকটি আধুনিক এই পরিবর্তনশীল দৈর্ঘ্যের লাইনগুলি পছন্দ করতে পারে না ...
স্টিফান এগারমন্ট

হ্যাঁ, এটি কিছু মরিচা ওল স্মৃতি ফিরে এনেছে। যদিও এটি প্রয়োজনীয়তাগুলি পূরণ করে বলে আমি মনে করি না ...
এভিল টিচ

আমি এখনই আকুবোবলে কোড লিখছি! যাইহোক, "আই / ও" এর "আমি" অংশটি কোথায়?
বুগাবিল

39

Haskell,

main :: IO ()
main = let filePath = "fileio.txt" in
       do writeFile filePath "hello"
          appendFile filePath "\nworld"
          fileLines <- readFile filePath
          let secondLine = (lines fileLines) !! 1
          putStrLn secondLine

আপনি যদি কেবল একটি ফাইল পড়তে / লিখতে চান:

main :: IO ()
main = readFile "somefile.txt" >>= writeFile "someotherfile.txt" 

7
আহ্ 'সর্বশক্তিমান' হাস্কেল। আপনার অবদানের জন্য ধন্যবাদ :)
ব্রক উলফ

3
@ আন্ড্রেয়াস রেজব্রান্ড আমি প্রায় নিশ্চিত যে সে একটি 'হতে' ভুলে গেছে
ফেডেরিকো ক্লেজ কুলোকা

4
হাস্কেলের বুনিয়াদি আই / ও-এর আরও অনেকগুলি পন্থা রয়েছে যা একবার আপনি নির্দিষ্ট ধরণের অ্যাপস ব্যবহার করার পরে হাস্কেলের ক্ষেত্রে দরকারী / গুরুত্বপূর্ণ হয়ে ওঠে। ক্যাবল / হ্যাকেজের পাঠ্য এবং বাইট্রেস্টিং প্যাকেজগুলি আপনাকে বিভিন্ন এনকোডিংগুলি, এবং বিভিন্ন পুনরাবৃত্ত শৈলীর প্যাকেজগুলি যেমন আইট্রেটি এবং গণনাগুলি বর্ধিত আইও করার জন্য "সেরা পরিচিত বিমূর্ততা" উপস্থাপন করে with পার্সেকের মতো পার্সিং লিবস এবং বর্ধিত বাইটারিং কেবলমাত্র অ্যাটোপার্সিক লাইব গুরুত্বপূর্ণ। আইস ডিজাইন পছন্দগুলি অন্বেষণের জন্য হাস্কেলাররা খুব পুঙ্খানুপুঙ্খ পদ্ধতি গ্রহণ করেছে। অলসযোগ্য উদাহরণগুলির মধ্যে অলস আইও এবং ধারাবাহিকতা অন্তর্ভুক্ত রয়েছে
কার্টার তাজিও শোনওয়াল্ড

4
ইউজি: মূলত প্রতারণা করে। হাস্কেল হ'ল শুদ্ধ কার্যকরী ভাষা, প্রকারের কিছু বাদেIO a , যার পার্শ্ব প্রতিক্রিয়াগুলির জন্য বিশেষ সংকলক সমর্থন রয়েছে। (বিশুদ্ধতা অন্যত্র সংরক্ষিত হয়, কারণ কিছু যা সঞ্চালিত বা পার্শ্ব প্রতিক্রিয়া লক্ষ্য ধরনের হয় IO a, তাই টাইপ সিস্টেম আপনার প্রোগ্রাম বিশুদ্ধ থাকার বিষয়টি মতেই বাকি নিশ্চিত করে।)
স্যাম স্টোকস

4
এটি এমনটি ঘটে যা IOএকটি মোনাড, তবে সে কারণেই এটিকে পার্শ্ব প্রতিক্রিয়া করার অনুমতি দেওয়া হয় না। মোনাড হওয়াটাই আপনাকে সেই অত্যাবশ্যকীয় চেহারা বাক্য গঠন লিখতে দেয়: এটি নিশ্চিত করে (বিশেষ ভাষা সমর্থন সহ) পার্শ্ব প্রতিক্রিয়াগুলি একটি বুদ্ধিমান ক্রমে ঘটেছিল, সুতরাং ফাইলটি লেখার আগে আপনি ফাইলটি পড়েন না etc
স্যাম স্টোকস

35

ডি

module d_io;

import std.stdio;


void main()
{
    auto f = File("fileio.txt", "w");
    f.writeln("hello");
    f.writeln("world");

    f.open("fileio.txt", "r");
    f.readln;
    auto s = f.readln;
    writeln(s);
}

10
+1, সি ++ সংস্করণের চেয়ে অনেক বেশি সুন্দর এবং পাঠযোগ্য! আমি এমন একটি দিনের স্বপ্ন দেখি যখন ডি সম্পূর্ণভাবে সি এবং সি ++ প্রতিস্থাপন করে। :-)
অনুপস্থিত ফ্যাক্টর

10
খুশী হলাম। হয়তো আমার কোনও দিন ডি শিখানো উচিত।
হেল্পারমেডুড

34

চুনি

PATH = 'fileio.txt'
File.open(PATH, 'w') { |file| file.puts "hello" }
File.open(PATH, 'a') { |file| file.puts "world" }
puts line = File.readlines(PATH).last

2
+1 দুর্দান্ত, তবে কঠোর হতে হবে, কনসোলটিতে লেখার আগে আপনি ইনপুটটিকে কোনও ভেরিয়েবলের মধ্যে রাখবেন না।
লাসে এসপোল্ট

3
@ লেসিস্পহোল্ট, আপনি ঠিক বলেছেন আমি এটা ঠিক করেছি.
ওয়েইন কনরাড

5
বড় বর্ণের বড় নাম এবং 'PATH' বলার কোনও কারণ নেই। শুধু 'পথ' বলুন।
ওটিজেড

2
@otz এটি একটি ধ্রুবক। তিনি এটিকে 'পথ' বলতে পারতেন, যদিও রুবিতে একটি ধ্রুবককে বড় হাতের অক্ষর দিয়ে শুরু করতে হবে।
সিরুপসেন

1
@ থমাস আহলে: File.openকোনও ব্লকের সাথে ব্যবহার করার সময় ফাইলটি খোলা হয়, ব্লকে পাস করা হয় এবং তারপরে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।
ম্যাচু

33

সি শার্প

string path = "fileio.txt";
File.WriteAllLines(path, new[] { "hello"}); //Will end it with Environment.NewLine
File.AppendAllText(path, "world");

string secondLine = File.ReadLines(path).ElementAt(1);
Console.WriteLine(secondLine);

File.ReadLines(path).ElementAt(1)শুধুমাত্র নেট নেট 4.0.০, বিকল্পটি হ'ল File.ReadAllLines(path)[1]পুরো ফাইলটিকে অ্যারেতে পার্স করে।


1
এটি সি # তে বেশ ছোট। অবদানের জন্য ধন্যবাদ
ব্রুক উলফ

13
দ্রষ্টব্য: ফাইল.আরডলাইনস নেট নেট 4
kirk.burleson

5
সি # এর কি অপ্রীতিকর চেহারা দেখাচ্ছে
আইডেন বেল

3
@ আইডেন বেল: কোন ভাষার সাথে সম্পর্কিত?
zfedoran

2
@ আইডেন বেল - এই উত্তরটি পঠনযোগ্যের চেয়ে কমিয়ে দেওয়ার চেষ্টা করছে। সি # তে একই জিনিস অর্জনের অনেকগুলি "দুর্দান্ত" উপায় রয়েছে। আরও বাস্তব উদাহরণগুলির জন্য dotnetperls.com/file- হ্যান্ডলিং দেখুন ।
ড্যান ডিপ্লো

29

এএনএসআই সি

#include <stdio.h>
#include <stdlib.h>

int /*ARGSUSED*/
main(char *argv[0], int argc) {
   FILE *file;
   char buf[128];

   if (!(file = fopen("fileio.txt", "w")) {
      perror("couldn't open for writing fileio.txt");
      exit(1);
   }

   fprintf(file, "hello");
   fclose(file);

   if (!(file = fopen("fileio.txt", "a")) {
      perror("couldn't opened for appening fileio.txt");
      exit(1);
   }

   fprintf(file, "\nworld");
   fclose(file);

   if (!(file = fopen("fileio.txt", "r")) {
      perror("couldn't open for reading fileio.txt");
      exit(1);
   }

   fgets(buf, sizeof(buf), file);
   fgets(buf, sizeof(buf), file);

   fclose(file);

   puts(buf);

   return 0;
}

চমৎকার উত্তর. +1 অবদানের জন্য ধন্যবাদ
ব্রক উলফ

কেন আপনি দুবার fgets কল ()?
কিরক.বার্লসন

2
কারণ দ্বিতীয় লাইনটি হ'ল আমরা
স্টাডাউটে

1
# অন্তর্ভুক্ত <stdio.h> int প্রধান (শূন্য) {ফাইল ফাইল; চর বুফ [128]; file = fopen ("fileio.txt", "w"); যদি (! ফাইল) গোটো ত্রুটি; fputs ("হ্যালো \ n", ফাইল); fflush (ফাইল); fputs ("ওয়ার্ল্ড \ n", ফাইল); fclose সাথে (ফাইল); file = fopen ("fileio.txt", "r"); যদি (! ফাইল) গোটো ত্রুটি; fgets (বুফ, মাপের (বুফ), ফাইল); / এড়িয়ে যান 'হ্যালো' / fgets (বুফ, মাপের (বুফ), ফাইল); / get 'শব্দ' * / fclose (ফাইল); fputs (buf, stdout); প্রত্যাবর্তন 0; ত্রুটি: fputs ("ফাইল খুলতে পারেনি \ n", স্ট্যাডার); প্রত্যাবর্তন 1; }
ফেলিপিসি

অরিগনাল সি পোস্টে দুর্দান্ত ক্লিন কোডিং (প্রচুর পরিমাণে ত্রুটিযুক্ত ত্রুটি পরীক্ষা করা) (যা কিছুটা দৈর্ঘ্যের বাইরে বেরিয়ে আসে)।
xagyg

29

শেল স্ক্রিপ্ট (ইউনিক্স)

#!/bin/sh
echo "hello" > fileio.txt
echo "world" >> fileio.txt
LINE=`sed -ne2p fileio.txt`
echo $LINE

আসলে sed -n "2p"অংশটি দ্বিতীয় লাইনটি প্রিন্ট করে, তবে প্রশ্নটি দ্বিতীয় লাইনটি একটি ভেরিয়েবলের মধ্যে সঞ্চয় করতে এবং তারপরে মুদ্রণের জন্য জিজ্ঞাসা করে, তাই ... :)


9
কেন জানি না, তবে আমি এটি পছন্দ করি :)
ফেডেরিকো ক্লেজ কুলোকা

অবশ্যই এটি গণনা করা হয়। চমৎকার উত্তর এবং +1 অবদানের জন্য ধন্যবাদ
ব্রক উলফ

স্ট্যান্ডার্ডটি / দেব / নালকে কেন পাঠাচ্ছেন না?
গম্বো

সেখানে একটি কিছুটা সহজ, এবং দ্রুত, সংস্করণ, শুধুমাত্র শেল builtins ব্যবহার (যেমন ডাকা একটি পৃথক প্রক্রিয়া বন্ধ forking উল্টোদিকে এর sed:), এখানে stackoverflow.com/questions/3538156/...
ব্রায়ান ক্যাম্পবেল

@ গম্বো, তাহলে আপনি দ্বিতীয় লাইনটি কীভাবে পাবেন? ভেরিয়েবলের LINE=`foo`আউটপুট ক্যাপচার করে । fooLINE
স্ট্রাগার

27

লিনাক্সে x86 এসেমব্লার (এনএএসএম)

আমি 7 বছরে asm স্পর্শ করতে পারি নি, তাই এটি একসাথে হ্যাক করার জন্য আমাকে গুগলটি কিছুটা ব্যবহার করতে হয়েছিল, তবে এখনও এটি কাজ করে;) আমি জানি এটি 100% সঠিক নয়, তবে: ডি

ঠিক আছে, এটি কাজ করে না। দুঃখিত এটি। এটি worldশেষ পর্যন্ত মুদ্রণ করার সময় , এটি ফাইল থেকে এটি মুদ্রণ করে না, তবে ecxলাইন ২ set-এ সেট করা আছে।

section .data
hello db 'hello',10
helloLen equ $-hello
world db 'world',10
worldLen equ $-world
helloFile db 'hello.txt'

section .text
global _start

_start:
mov eax,8
mov ebx,helloFile
mov ecx,00644Q
int 80h

mov ebx,eax

mov eax,4
mov ecx, hello
mov edx, helloLen
int 80h

mov eax,4
mov ecx, world
mov edx, worldLen
int 80h

mov eax,6
int 80h

mov eax,5
mov ebx,helloFile
int 80h

mov eax,3
int 80h

mov eax,4
mov ebx,1
int 80h

xor ebx,ebx
mov eax,1
int 80h

ব্যবহৃত রেফারেন্স: http://www.cin.ufpe.br/~if817/arquivos/asmtut/quickstart.html

http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html

http://www.digilife.be/quickreferences/QRC/LINUX%20System%20Call%20Quick%20Reference.pdf


আপনি কি এটি সংশোধন করতে যাচ্ছেন যাতে এটি 100% কাজ করে? যদি তা না হয় তবে এটি মুছুন যাতে একটি কার্যকারী সংস্করণ তার জায়গা নিতে পারে।
kirk.burleson

4
কী মজার বিষয়টি হ'ল সিতে উদাহরণটি উচ্চতর স্তরের ভাষা বলে মনে হয়, এটি যতদিন থাকবে ... =)
জানি হার্টিকাইনেন

1
@ জানি: তবে কমপক্ষে এটি বুঝতে কিছুটা সহজ।
sbi

ভেবেছিলাম এটি প্রথমে ডসের জন্য ছিল :)
mlvljr

21

জাভাস্ক্রিপ্ট - node.js

প্রথমত, নেস্টেড কলব্যাক প্রচুর।

var fs   = require("fs");
var sys  = require("sys");
var path = "fileio.txt";

fs.writeFile(path, "hello", function (error) {
    fs.open(path, "a", 0666, function (error, file) {
        fs.write(file, "\nworld", null, "utf-8", function () {
            fs.close(file, function (error) {
                fs.readFile(path, "utf-8", function (error, data) {
                    var lines = data.split("\n");
                    sys.puts(lines[1]);
                });
            });
        });
    });
});

একটু ক্লিনার:

var writeString = function (string, nextAction) {
    fs.writeFile(path, string, nextAction);
};

var appendString = function (string, nextAction) {
    return function (error, file) {
        fs.open(path, "a", 0666, function (error, file) {
            fs.write(file, string, null, "utf-8", function () {
                fs.close(file, nextAction);
            });
        });
    };
};

var readLine = function (index, nextAction) {
    return function (error) {
        fs.readFile(path, "utf-8", function (error, data) {
            var lines = data.split("\n");
            nextAction(lines[index]);
        });
    };
};

var writeToConsole = function (line) {
    sys.puts(line);
};

writeString("hello", appendString("\nworld", readLine(1, writeToConsole)));

@ আইয়নট: আপনার অনেক অবদানের জন্য ধন্যবাদ +1
ব্রক উলফ

4
@ ডেভ, এটি ব্রাউজারগুলিতে পাওয়া জেএস নয়। আমি বলতে চাই, সিনট্যাক্টিকালি এবং সিনটিক্যালি, এটি একই জেএস, কেবল স্ট্যান্ডার্ড লাইব্রেরি আলাদা। আমি node.jsপ্ল্যাটফর্মের stdlib ব্যবহার করেছি । Nodejs.org
Ionuț G. Stan

5
এই কোডটি ধারাবাহিকতার জন্য চিৎকার করছে। আমি এর অশ্রু শুনতে পাচ্ছি।
ম্যাট

2
এটি কি মজার নয় যে লাইনের সংখ্যা নীচের দিকের ASM সমাধানের সাথে প্রায় মিলছে?
kizzx2

1
@ ম্যাট হ্যাঁ, ধারাবাহিকতা বা মনডগুলি এখানেও সহায়তা করবে।
মার্টিজন

21

কমন লিস্প

(defun main ()
  (with-open-file (s "fileio.txt" :direction :output :if-exists :supersede)
    (format s "hello"))
  (with-open-file (s "fileio.txt" :direction :io :if-exists :append)
    (format s "~%world")
    (file-position s 0)
    (loop repeat 2 for line = (read-line s nil nil) finally (print line))))

1
"লিস্প" নামের একটি ভাষার জন্য আরও অনেক "এস" অক্ষর যুক্ত থাকতে হবে :)
iwasrobbed

18

শক্তির উৎস

sc fileio.txt 'hello'
ac fileio.txt 'world'
$line = (gc fileio.txt)[1]
$line

3
এটি সুন্দর এবং পরিষ্কার। ইয়া পাওয়ারশেল
জে বাজুজি

আমি উদ্ধৃতি সম্পর্কে আপনার যুক্তি সঙ্গে একমত। আমি তাদের সরিয়ে দেওয়ার কারণটি হ'ল আমি বুঝতে পারি যে এই স্ক্রিপ্টটি আসলে কমপ্যাক্ট হওয়ার জন্য শীর্ষে রয়েছে তাই আমি এটি আমার কাছে আরও ছোট চেয়েছিলাম - তবে আমরা এটি স্পষ্ট হতে দিই :)। এবং এর gcপরিবর্তে এর ব্যবহারটি catবোঝায় :-) get-aliasআমাকে catপ্রথমে দিয়েছে (আমি পাওয়ারশেল বেশি ব্যবহার করছি না)।
ল্যাসে এসপোল্ট

4
অভিশাপ, কিছু ছোট আছে কি ??
0fnt

18

শেল স্ক্রিপ্ট

পূর্ববর্তী প্রতিক্রিয়া যেমন হয়েছে sedবা tailযেমন বাহ্যিক কমান্ডগুলি চাওয়ার চেয়ে কেবল বিল্টিন কমান্ড ব্যবহার করে এখানে একটি শেল স্ক্রিপ্ট রয়েছে ।

#!/bin/sh

echo hello > fileio.txt             # Print "hello" to fileio.txt
echo world >> fileio.txt            # Print "world" to fileio.txt, appending
                                    # to what is already there
{ read input; read input; } < fileio.txt  
                                    # Read the first two lines of fileio.txt,
                                    # storing the second in $input
echo $input                         # Print the contents of $input

উল্লেখযোগ্য শেল স্ক্রিপ্টগুলি লেখার সময়, বিল্টিনগুলি যথাসম্ভব ব্যবহার করার পরামর্শ দেওয়া হয়, যেহেতু পৃথক প্রক্রিয়া তৈরি করা ধীর হতে পারে; আমার মেশিনে একটি দ্রুত পরীক্ষা থেকে, sedসমাধানটি ব্যবহারের চেয়ে প্রায় 20 গুণ কম ধীর read। আপনি যদি sedএকবার কল করতে যাচ্ছেন , যেমন এই ক্ষেত্রে, এটি আপনার পক্ষে লক্ষ্য করার চেয়ে আরও দ্রুত কার্যকর হবে, তবে আপনি যদি এটি কয়েকশো বা কয়েক হাজার বার সম্পাদন করতে যাচ্ছেন তবে তা করতে পারে যোগ করুন

সিনট্যাক্সের সাথে অপরিচিত {এবং } বর্তমান শেল এনভায়রনমেন্টে কমান্ডের একটি তালিকা কার্যকর করুন ( যার বিপরীতে (এবং )একটি সাবসেল তৈরি করে; আমাদের বর্তমান শেল এনভায়রনমেন্টে অপারেটিং হওয়া দরকার, সুতরাং আমরা ভেরিয়েবলের মানটি পরে ব্যবহার করতে পারি) । এগুলি উভয়কে একই ইনপুট স্ট্রিমে পরিচালনা করার জন্য আমাদের একসাথে কমান্ডগুলি গোষ্ঠীভুক্ত করতে হবে, যা থেকে পুনর্নির্দেশের মাধ্যমে তৈরি করা হয়েছে fileio.txt; যদি আমরা কেবল দৌড়ে read < fileio.txt; read input < fileio.txtযাই, আমরা কেবল প্রথম লাইনটি পেয়ে যাব কারণ ফাইলটি বন্ধ হয়ে যাবে এবং দুটি কমান্ডের মধ্যে পুনরায় খোলা হবে। শেল সিনট্যাক্সের আইডিসিএনক্র্যাসির কারণে ( {এবং }মেটাচার্যাক্টারের বিপরীতে সংরক্ষিত শব্দগুলি রয়েছে), আমাদের আলাদা করতে হবে {এবং}বাকী কমান্ডগুলি ফাঁকা সহ, এবং ক এর সাথে কমান্ডের তালিকাটি সমাপ্ত করুন ;

readBuiltin একটি আর্গুমেন্ট ভেরিয়েবল নাম মধ্যে পড়তে যেমন লাগে। এটি ইনপুটটির একটি লাইন গ্রাস করে, হোয়াইটস্পেসের সাহায্যে ইনপুটটি ভেঙে দেয় (প্রযুক্তিগতভাবে, এটি বিষয়বস্তু অনুসারে এটি ভেঙে দেয় $IFS, যা কোনও স্থানের অক্ষরকে ডিফল্ট করে, যেখানে কোনও স্থানের অক্ষর মানে স্থান, ট্যাব বা নতুন লাইনের যে কোনও অংশে এটি বিভক্ত হয়), বরাদ্দ করে প্রতিটি শব্দের ক্রমযুক্ত ভেরিয়েবলের নামের প্রতি, এবং শেষের ভেরিয়েবলের সাথে রেখার বাকী অংশ নির্ধারণ করে। যেহেতু আমরা কেবল একটি ভেরিয়েবল সরবরাহ করছি, এটি পুরো ভেরিয়েবলটিতে সম্পূর্ণ লাইন রাখে। আমরা $inputভেরিয়েবলটি পুনরায় ব্যবহার করি , যেহেতু আমরা প্রথম লাইনে কী আছে তা আমাদের যত্ন নেই (যদি আমরা বাশ ব্যবহার করি তবে আমরা কেবল একটি ভেরিয়েবলের নাম সরবরাহ করতে পারি না, তবে পোর্টেবল হওয়ার জন্য আপনাকে অবশ্যই সর্বদা কমপক্ষে একটি নাম সরবরাহ করতে হবে)।

মনে রাখবেন যে আপনি এখানে একবার করার মতো লাইন একবারে পড়তে পারবেন, আরও কিছু সাধারণ প্যাটার্নটি এটি কিছুক্ষণ লুপের মধ্যে আবৃত হবে:

while read foo bar baz
do
  process $foo $bar $baz
done < input.txt

3
খুব সুন্দর. আমি কিছু শিখেছি (সাময়িকভাবে হলেও)।
পোটোটোভটার

ব্রায়ান আপনার অবদানের জন্য ধন্যবাদ।
ব্রুক উলফ

পুরোপুরি অসুস্থ! একটি ভাল উপায়ে :-)
সহায়তাকারী

18

Clojure

(use '[clojure.java.io :only (reader)])

(let [file-name "fileio.txt"]
  (spit file-name "hello")
  (spit file-name "\nworld" :append true)
  (println (second (line-seq (reader file-name)))))

বা সমানভাবে, থ্রেডিং ম্যাক্রো ->(এটি পেরেন রিমুভার হিসাবেও পরিচিত) ব্যবহার করে:

(use '[clojure.java.io :only (reader)])

(let [file-name "fileio.txt"] 
  (spit file-name "hello") 
  (spit file-name "\nworld" :append true) 
  (-> file-name reader line-seq second println))

1
ডাব্লুটিএফ, গত ৫০ বছর ধরে প্রায় কেউই লিপ্প / স্কিমের শিলা বলেছে না!
আয়নু জি স্টান

11
অপেক্ষা করুন, spitলিখিত-টু-ফাইল ফাংশনের নাম কি?
স্যাম স্টোকস

4
ক্লোজার নিশ্চয়ই দোলা দেয় না!
কিরক.বার্লসন

1
@ [স্যাম স্টোকস] স্লুর্প নামক কোরটিতে একটি ফাংশন রয়েছে যা একটি সম্পূর্ণ ফাইলকে স্ট্রিংয়ে পড়ে এবং ফেরত দেয়। থুতু ঠিক বিপরীত কাজ করে। ব্যাপারটা কি? লাইন-সেকের মতো অন্যান্য ফাংশন রয়েছে যা একই উপায়ে বিভিন্ন উপায়ে কাজ করে।
রায়েন

4
@ কিরক.বার্লসন অবশ্যই জাভা এর চেয়ে বেশি রক করেছেন। :)
রায়েন


16

বেসিক

আমি প্রায় 10 বছরে বেসিক ব্যবহার করি নি, তবে এই প্রশ্নটি আমাকে দ্রুত আমার জ্ঞান সজ্জিত করার কারণ দিয়েছে। :)

OPEN "fileio.txt" FOR OUTPUT AS 1
PRINT #1, "hello"
PRINT #1, "world"
CLOSE 1

OPEN "fileio.txt" FOR INPUT AS 1
LINE INPUT #1, A$
LINE INPUT #1, A$
CLOSE 1

PRINT A$

এটি আশ্চর্যজনক যে আপনি 10 বছর পরেও এটি করতে পারেন !. ভাল করেছেন এবং আপনার অবদানের জন্য ধন্যবাদ।
ব্রক উলফ

আমি অবশ্যই এটি আমার মাথার উপরের অংশটি থেকে করিনি: কিছু জিনিস সন্ধান করতে কয়েক মিনিট সময় নিয়েছিল।
ক্যাসাব্লাঙ্কা

হ্যাঁ, অবশ্যই. এখনও ভাল হয়েছে।
ব্রক উলফ

বেসিকের সবচেয়ে ক্লাসিক সংস্করণে আপনার লাইন নম্বরের দরকার নেই ???
যুজি

@ ইউজি: "সবচেয়ে ক্লাসিক সংস্করণে" হ্যাঁ, তবে আমি মনে করি না 90 এর দশকের প্রথম দিক থেকে কোনও সংস্করণ তাদের প্রয়োজনীয় হয়েছে।
ক্যাসাব্ল্যাঙ্কা

16

উদ্দেশ্য গ

NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:@"fileio.txt"];

[[NSFileManager defaultManager] createFileAtPath:@"fileio.txt" contents:nil attributes:nil];

[fh writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
[fh writeData:[@"\nworld" dataUsingEncoding:NSUTF8StringEncoding]];

NSArray *linesInFile = [[[NSString stringWithContentsOfFile:@"fileio.txt" 
                                             encoding:NSUTF8StringEncoding 
                                                error:nil] stringByStandardizingPath] 
                          componentsSeparatedByString:@"\n"];

NSLog(@"%@", [linesInFile objectAtIndex:1]);

17
আমি কখনই অবজেক্টিভ-সি পছন্দ করি নি। জাভা মত ভাষা থেকে আসা যখন বাক্য গঠন ঠিক তাই বিদেশী বলে মনে হচ্ছে।
ফয়সাল আবিদ

5
অবজেক্টিভ-সি এর গোপন বিষয় হ'ল এক্সকোড আপনার জন্য সমস্ত কোড সমাপ্ত করে। আপনাকে দীর্ঘ পদ্ধতির নাম মনে করতে হবে না। তারা অবশ্যই আপনার কোডটি আরও বেশি পঠনযোগ্য করে তুলবে
ব্রুক উলফ

7
এবং আমি ভেবেছিলাম সি ++ সিনট্যাক্সটি ইতিমধ্যে সবচেয়ে খারাপ দেখাচ্ছে।
টুড

6
উদ্দেশ্য-সি কেবল খারাপ দেখায় কারণ স্ট্যাকওভারফ্লো সিনট্যাক্স হাইলাইটারটি সঠিকভাবে রঙিন হয় না।
ব্রুক উলফ

4
আমি বিশ্বাস করতে পারি না এটি এতদূর তালিকায় রয়েছে! এছাড়াও জাভা ছেলেরা মন্তব্য করেছেন যে উদ্দেশ্য-সি কুরুচিপূর্ণ, আপনি কি একই ফাইলটি লেখার জন্য কতগুলি লাইন নিয়েছেন তা দেখেছেন? আমি জাভা উত্সাহী ছিলাম, তবে আমি মনে করি অবজেক্টিভ-সি এটি আমার হৃদয়ে প্রবেশ করেছে।
কাইল

16

পার্ল

#!/usr/bin/env perl

use 5.10.0;
use utf8;
use strict;
use autodie;
use warnings qw<  FATAL all     >;
use open     qw< :std  :utf8    >;

use English  qw< -no_match_vars >;

# and the last shall be first
END { close(STDOUT) }

my $filename = "fileio.txt";
my($handle, @lines);

$INPUT_RECORD_SEPARATOR = $OUTPUT_RECORD_SEPARATOR = "\n";

open($handle, ">",  $filename);
print $handle "hello";
close($handle);

open($handle, ">>", $filename);
print $handle "world";
close($handle);

open($handle, "<",  $filename);
chomp(@lines = <$handle>);
close($handle);

print STDOUT $lines[1];

15
লেক্সিকাল ফাইলহ্যান্ডলগুলি সম্পর্কে কী, 3 টি যুক্তি খোলা?
এমকেভি

6
স্ট্যাক ওভারফ্লোতে কখনই নন-লেজিকাল ফাইলহ্যান্ডল ব্যবহার করা উচিত নয়। অনুশীলনে তাদের জন্য খুব কমই প্রয়োজন হয় এবং নতুনদের কখনও দেখাতে হবে না যে তারা এমনকি আছে।
ইথার

4
একই সাথে দুটি যুক্তি খোলার পক্ষে রয়েছে: আপনার এটিকে স্ট্যাক ওভারফ্লোতে কখনও ব্যবহার করা উচিত নয় এবং সম্ভবত বাস্তবে এটি ব্যবহার করা উচিত নয়।
rpkelly

2
আমি 3-আরগ ওপেন এবং লেজিকাল ফাইলহ্যান্ডলগুলি এত বেশি ব্যবহার করি আমি ব্যবহারিকভাবে এটিকে একটি সিনট্যাক্স ত্রুটি হিসাবে দেখি। এবং তাই এটি হওয়া উচিত। / আমি এটি করতে একটি মডিউল লেখার চিন্তা।
কেন্ট ফ্রেড্রিক

2
"এমনকি অখণ্ড উন্মুক্তেরও এর ব্যবহার রয়েছে", এর ব্যবহার রয়েছে, হ্যাঁ, তবে আমি যেদিন এটি কাজ করেছিলাম সেদিনটি আমি খারাপ ব্যবহার অনুভব করেছি এবং চলেছি "অবশ্যই অন্য কোনও উপায় আছে" প্রতিবার যখন আমি এমন কাউকে দেখি যা তাদের প্রয়োজন বলে মনে করে। perl -we 'for (q{ps aux |}){ open _; print <_>; }'
21:51

15

আর:

বিড়াল ("হ্যালো \ n", ফাইল = "fileio.txt")
বিড়াল ("ওয়ার্ল্ড \ n", ফাইল = "fileio.txt", সংযোজন = সত্য)
লাইন 2 = রিডলাইনস ("fileio.txt", n = 2) [2]
বিড়াল (line2)

15

পিএইচপি

<?php

$filePath = "fileio.txt";

file_put_contents($filePath, "hello");
file_put_contents($filePath, "\nworld", FILE_APPEND);

$lines = file($filePath);

echo $lines[1];

// closing PHP tags are bad practice in PHP-only files, don't use them

দারুণ. অবদানের জন্য ধন্যবাদ।
ব্রক উলফ

20
বিকল্পভাবে, আপনি সি বাস্তবায়ন নিতে এবং ডলার লক্ষণ যুক্ত করতে পারে।
কেন্ডাল হপকিন্স

@ স্ট্রেজার আমার কোনও ধারণা নেই। এমন কিছু লোক আছেন যারা জানেন না যে এটি অপ্টিনাল এবং এটি ছাড়া এটি আরও ভাল।
অয়নু জি স্টান

6
যদি কেউ আগ্রহী হন তবে তিনি ক্লোজিং ট্যাগটি ছেড়ে দেওয়ার কারণ হ'ল কারণ আপনি যদি এটি অন্তর্ভুক্ত করেন এবং কোনও পেছনের সাদা স্থান ছেড়ে যান তবে আপনার 'শিরোনাম ইতিমধ্যে প্রেরিত' ত্রুটি হওয়ার ঝুঁকি রয়েছে।
বিল এইচ


15

জাভা

import java.io.*;
import java.util.*;

class Test {
  public static void  main(String[] args) throws IOException {
    String path = "fileio.txt";
    File file = new File(path);

    //Creates New File...
    try (FileOutputStream fout = new FileOutputStream(file)) {
      fout.write("hello\n".getBytes());
    }

    //Appends To New File...
    try (FileOutputStream fout2 = new FileOutputStream(file,true)) {
      fout2.write("world\n".getBytes());
    }

    //Reading the File...
    try (BufferedReader fin = new BufferedReader(new FileReader(file))) {
      fin.readLine();
      System.out.println(fin.readLine());
    }       
  }
}

36
@ ব্রোক: আজকাল জাভা ধীর নয়। শুধু ভার্বোজ, কিন্তু ধীর নয়। দয়া করে এ জাতীয় মন্তব্য করবেন না; আমাদের জেভিএম লোককে কষ্ট দেয়। : '|
অনুপস্থিত ফ্যাক্টর

9
যে কেউ জাভা ধীর বলেছে সে হয় অন্ধ জাভা বিদ্বেষী বা পাথরের নিচে বাস করে। জাভা সি এর চেয়ে দ্রুত না হলেও বুট করার জন্য প্ল্যাটফর্মের স্বাধীনতার সাথে দ্রুত হতে পারে।
00 এ নাল ইউজারএক্সেপশন

4
@ মিসিং ফ্যাক্টর: আর তাই?
জেরি কফিন

19
প্রোগ্রামারদের কাছে পিসিং প্রতিযোগিতার সর্বাধিক প্রতিবন্ধক ফর্মটি সম্পাদন গতি। কাজের জন্য সঠিক সরঞ্জামটি বেছে নেওয়া, এক্সিকিউশন স্পিডের মতো একটি এলোমেলো মেট্রিক নির্বাচন করা এবং এটিকে গুরুত্বের স্তূপ নির্ধারণের ক্ষেত্রে এটি সর্বদা নিখুঁত, বিশেষত যেহেতু মৃত্যুর গতি বিপুল পরিমাণে কাজের জন্য গুরুতরভাবে গুরুত্বপূর্ণ নয়, যতক্ষণ না এটি যথেষ্ট দ্রুত (যা জাভা প্রায় সব কিছুর জন্য)
ম্যাট ব্রিগেস

11
"হার্ডওয়্যারিং মেশিন কোডের চেয়ে দ্রুত", "মেশিন কোড এএসএমের চেয়ে দ্রুত", "এসএম সি এর চেয়ে দ্রুত", "সি জাভার চেয়ে দ্রুত", "ব্লাহ ব্লাহ ব্লাহ" ... এমনকি আপনার কি এক ক্লু আছে কত ইন্দিরেশান ইতোমধ্যে মেশিন কোড এবং সিপিইউয়ের মধ্যে রয়েছে? মাইক্রোকোড, ভবিষ্যদ্বাণীমূলক অপ্টিমাইজার, নির্দেশ / ডেটা ক্যাশে, ডিকোডার ইত্যাদি সি / এএসএম-তে গতিশীল বরাদ্দের কারণে সৃষ্ট ননডেটেরিনিজমের কথা উল্লেখ না করে। জাভা এবং অন্যান্য নিরাপদ ভাষাগুলি ইন্ডিয়ারেশনের আরও একটি ছোট পদক্ষেপ, এটি কোনও বড় বিষয় নয়। আপনি হয় চিরকাল আপনার আদিম রূপে থাকতে পারেন বা আমাদের সাথে বিকাশ করতে পারেন।
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

14

সি ++

#include <limits>
#include <string>
#include <fstream>
#include <iostream>

int main() {
    std::fstream file( "fileio.txt",
        std::ios::in | std::ios::out | std::ios::trunc  );
    file.exceptions( std::ios::failbit );   

    file << "hello\n" // << std::endl, not \n, if writing includes flushing
         << "world\n";

    file.seekg( 0 )
        .ignore( std::numeric_limits< std::streamsize >::max(), '\n' );
    std::string input_string;
    std::getline( file, input_string );

    std::cout << input_string << '\n';
}

বা কিছুটা কম

#include <string>
#include <fstream>
#include <iostream>
using namespace std;

int main() {
    fstream file( "fileio.txt", ios::in | ios::out | ios::trunc  );
    file.exceptions( ios::failbit );   

    file << "hello" << endl
         << "world" << endl;

    file.seekg( 0 ).ignore( 10000, '\n' );
    string input_string;
    getline( file, input_string );

    cout << input_string << endl;
}

1
গ্রেট! +1 অবদানের জন্য ধন্যবাদ
ব্রুক উলফ

14
আমি ভুলে গেছি সি ++ এর বাক্য গঠন কীভাবে হতে পারে।
টড

এই হল সবচেয়ে সি ++ কোড দেখে মনে হচ্ছে কি তুলনায় নৃশংস। মূল সমস্যাটি হ'ল স্ট্যান্ডার্ড লাইব্রেরিতে সংজ্ঞায়িত উপযুক্ত ধ্রুবকের অভাব, যদিও বাক্য গঠন নয়। এটা আমার হাতাহাতি দূরে যে আমি অন্তর্ভুক্ত করতে হবে <limits>মাত্র বলতে ignoreসেখানে নয় লাইন মাপ একটা সীমা।
পোটোসওয়টার

8
@ હંস: আপনি কি তা পরিষ্কার করতে চান? ব্যক্তিগতভাবে, আমি ইনপুট / আউটপুট মনে জন্যে একটি লাইব্রেরিতে বদলে ভাষায়, এবং সমস্ত ভাষা আমি প্রোগ্রাম এটা যে পথ (সি, সি ++, জাভা, পাইথন, ইত্যাদি) না
Chinmay কাঞ্চী

2
এখন আমি জানি লিনাস কেন সি ++ কুৎসিত বলে। (কোনও অপরাধ নেই)
২২

13

যাওয়া

package main

import (
  "os"
  "bufio"
  "log"
)

func main() {
  file, err := os.Open("fileio.txt", os.O_RDWR | os.O_CREATE, 0666)
  if err != nil {
    log.Exit(err)
  }
  defer file.Close()

  _, err = file.Write([]byte("hello\n"))
  if err != nil {
    log.Exit(err)
  }

  _, err = file.Write([]byte("world\n"))
  if err != nil {
    log.Exit(err)
  }

  // seek to the beginning 
  _, err = file.Seek(0,0)
  if err != nil {
    log.Exit(err)
  }

  bfile := bufio.NewReader(file)
  _, err = bfile.ReadBytes('\n')
  if err != nil {
    log.Exit(err)
  }

  line, err := bfile.ReadBytes('\n')
  if err != nil {
    log.Exit(err)
  }

  os.Stdout.Write(line)
}

23
এই ভাষাটির নাম "টাইপ" করা উচিত
আইডেন বেল

os.O_RDWR | os.O_CREATE, 0666গো-এ I / O বেসিক ফাইলের জন্য কি এই জাঙ্কটি প্রয়োজনীয়?
জোয়ে অ্যাডামস

1
অথবা হতে পারে এর নাম পরিবর্তন করা উচিত "স্টপ"
xagyg

16
এটি বরং বিস্ময়কর যে 30 বছরের বিবর্তন এবং ভাষার নকশা দিয়েছিল, তারা এখনও একটি নতুন ভাষা আবিষ্কার করতে সক্ষম হয়েছে যা সি এর মতো ত্রুটি-চেকিং কোড লিখতে এতটা কঠিন Even
ডি কে

5
বাহ ... গো এই উদাহরণটি দিয়ে অনেক ব্যর্থ বলে মনে হচ্ছে
আলেসান্দ্রো স্টাম্যাটটো

12

Erlang

সম্ভবত সর্বাধিক অভিহিত এরলং নয়, তবে:

#!/usr/bin/env escript

main(_Args) ->
  Filename = "fileio.txt",
  ok = file:write_file(Filename, "hello\n", [write]),
  ok = file:write_file(Filename, "world\n", [append]),
  {ok, File} = file:open(Filename, [read]),
  {ok, _FirstLine} = file:read_line(File),
  {ok, SecondLine} = file:read_line(File),
  ok = file:close(File),
  io:format(SecondLine).

12

ইমাস লিস্প

কিছু লোক যা বলেছে তা সত্ত্বেও ইমাকস মূলত একটি পাঠ্য সম্পাদক [1]। সুতরাং যখন ইমাস লিস্প সব ধরণের সমস্যা সমাধান করতে ব্যবহার করা যায় এটি কোনও পাঠ্য সম্পাদকের প্রয়োজনের প্রতি অনুকূলিত হয়। যেহেতু পাঠ্য সম্পাদকগণের (স্পষ্টতই) যথেষ্ট সুনির্দিষ্ট প্রয়োজন থাকে যখন ফাইলগুলি পরিচালনা করা হয় তা ইমাস লিস্প কী ফাইল সম্পর্কিত কার্যকারিতাটিকে প্রভাবিত করে।

মূলত এর অর্থ এই যে ইমাস লিস্প কোনও ফাইলকে স্ট্রিম হিসাবে খোলার জন্য ফাংশন সরবরাহ করে না এবং এটি খণ্ড খণ্ডভাবে পড়তে পারে। একইভাবে আপনি প্রথমে পুরো ফাইলটি লোড না করে কোনও ফাইলে সংযোজন করতে পারবেন না। পরিবর্তে ফাইলটি সম্পূর্ণরূপে [2] একটি বাফারে পড়ে [3], সম্পাদনা করে আবার একটি ফাইলে সংরক্ষণ করা হয় to

অবশ্যই প্রয়োজনীয় কাজের জন্য আপনি ইমাস লিস্প ব্যবহার করবেন এটি উপযুক্ত এবং আপনি যদি এমন কিছু করতে চান যা সম্পাদনা করতে জড়িত না একই ফাংশন ব্যবহার করা যেতে পারে।

আপনি যদি বারবার কোনও ফাইল যুক্ত করতে চান তবে এটি একটি বিশাল ওভারহেডের সাথে আসে, তবে এটি এখানে প্রদর্শিত হিসাবে সম্ভব। অনুশীলনে আপনি সাধারণত কোনও ফাইলে লেখার আগে ম্যানুয়ালি বা প্রোগ্রামগতভাবে বাফারে পরিবর্তন করা শেষ করেন (কেবল নীচের উদাহরণে প্রথম দুটি এস-এক্সপ্রেশন একত্রিত করুন)।

(with-temp-file "file"
  (insert "hello\n"))

(with-temp-file "file"
  (insert-file-contents "file")
  (goto-char (point-max))
  (insert "world\n"))

(with-temp-buffer
  (insert-file-contents "file")
  (next-line)
  (message "%s" (buffer-substring (point) (line-end-position))))

[1] কমপক্ষে আমি এটিকে ওএস বলা যতদূর যেতে পারব না; একটি বিকল্প UI হ্যাঁ, একটি ওএস নং।

[2] আপনি কেবল কোনও ফাইলের কিছু অংশ লোড করতে পারেন তবে এটি কেবলমাত্র বাই-ওয়াইন দ্বারা নির্দিষ্ট করা যেতে পারে।

[3] একটি বাফার উভয়ই কোনও স্ট্রির অনুরূপ ডেটাটাইপ এবং সেইসাথে "একটি ফাইল সম্পাদনা করার সময় আপনি যে জিনিসটি দেখেন" উভয়ই। একটি বাফার সম্পাদনার সময় একটি উইন্ডোতে প্রদর্শিত হয় তবে বাফারগুলি ব্যবহারকারীর কাছে দৃশ্যমান হওয়ার প্রয়োজন হয় না।

সম্পাদনা: আপনি যদি দেখতে চান যে পাঠ্যটি বাফারটিতে sertedোকানো হচ্ছে তবে আপনি অবশ্যই এটি দৃশ্যমান করে তুলতে হবে এবং ক্রিয়াগুলির মধ্যে ঘুমাতে হবে sleep কারণ ইমাক্স সাধারণত ব্যবহারকারী ইনপুটটির জন্য অপেক্ষা করার সময় কেবল পর্দা পুনরায় প্রদর্শন করে (এবং ঘুমানো ইনপুটটির জন্য অপেক্ষা করার মতো নয়) আপনাকেও পুনরায় খেলতে বাধ্য করতে হবে। এটি এই উদাহরণে প্রয়োজনীয় (দ্বিতীয় সেক্সপের জায়গায় এটি ব্যবহার করুন); অনুশীলনে আমাকে একবারেও 'পুনরায় প্রদর্শন' করতে হয়নি - তাই হ্যাঁ, এটি কুরুচিপূর্ণ তবে ...

(with-current-buffer (generate-new-buffer "*demo*")
  (pop-to-buffer (current-buffer))
  (redisplay)
  (sleep-for 1)
  (insert-file-contents "file")
  (redisplay)
  (sleep-for 1)
  (goto-char (point-max))
  (redisplay)
  (sleep-for 1)
  (insert "world\n")
  (redisplay)
  (sleep-for 1)
  (write-file "file"))

1
সুন্দর ধন্যবাদ. এটি কি বাড়ানো সম্ভব তাই আমি আসলে কোনও 'ভূত' ফাইলটি খোলার এবং তাতে টাইপ করার মতো দেখতে পাচ্ছি যে কোনও ম্যাক্রোর মতো?
zedoo

11

উইন্ডোজ ব্যাচ ফাইল - সংস্করণ # 2

@echo off
echo hello > fileio.txt
echo world  >> fileio.txt
set /P answer=Insert: 
echo %answer%  >> fileio.txt
for /f "skip=1 tokens=*" %%A in (fileio.txt) do echo %%A

শেষেরটি ভয়াবহ লুপটির সন্ধানের জন্য এটি ব্যাখ্যা করতে, ধরে নেওয়া যায় যে ফাইলটিতে কেবলমাত্র হ্যালো (নিউলাইন) বিশ্ব রয়েছে। সুতরাং এটি কেবল প্রথম লাইন এড়িয়ে যায় এবং কেবল দ্বিতীয়টি প্রতিধ্বনিত হয়।

পরিবর্তণের

  • 2 - বিপরীতে, অবশ্যই প্রয়োজনীয়তাগুলি ভুলভাবে পড়তে হবে বা সেগুলি আমার উপর পরিবর্তিত হয়েছিল। এখন ফাইল থেকে শেষ লাইন পড়ে


ঝরঝরে। আপনার অবদানের জন্য ধন্যবাদ
ব্রক উলফ

আমি পদক্ষেপ 4 বুঝতে পারি) তৈরি করা ফাইল থেকে পড়া হিসাবে ।
devio

@ ডিভিও - প্রয়োজনীয়তাগুলি অবশ্যই বদলে গেছে বা আমি কেবল সেগুলি ভুলভাবে লিখেছি ... যাইহোক আমি দেখতে পাচ্ছি যে এরকম কোনও সমাধান এমনকি রয়েছে কিনা
TheLQ

11

scala:

স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার:

val path = "fileio.txt"
val fout = new FileWriter(path)
fout write "hello\n"
fout.close()
val fout0 = new FileWriter(path, true)
fout0 write "world\n"
fout0.close() 
val str = Source.fromFile(path).getLines.toSeq(1)
println(str)

জোশ সুরেথের স্কালা-এআরএম লাইব্রেরি ব্যবহার করে :

val path = "fileio.txt"
for(fout <- managed(new FileWriter(path))) 
  fout write "hello\n"
for(fout <- managed(new FileWriter(path, true))) 
  fout write "world\n"
val str = Source.fromFile(path).getLines.toSeq(1)
println(str)      


যেহেতু দুটি লোক দুটি স্ট্রিং লিখতে একই ফাইল বর্ণনাকারী ব্যবহার করেছে, তাই আমি আমার উত্তরে সেভাবেই অন্তর্ভুক্ত করছি।

স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার:

val path = "fileio.txt"
val fout = new FileWriter(path)
fout write "hello\n"
fout write "world\n"
fout.close()
val str = Source.fromFile(path).getLines.toSeq(1)
println(str)

জোশ সুরেথের স্কালা-এআরএম লাইব্রেরি ব্যবহার করে :

val path = "fileio.txt"
for(fout <- managed(new FileWriter(path))){
  fout write "hello\n"
  fout write "world\n"
}
val str = Source.fromFile(path).getLines.toSeq(1)
println(str)

আমি মনে করি এটি বন্ধ () এর পরিবর্তে ফ্লাশ () এর সাথে আরও ভাল লাগবে ... ফাইল রাইটারের পুনরায় ইনস্ট্যান্ট করা হবে না।
রড্টু

2
@ রড্টু: অ্যাপেন্ড অপারেশনটি দেখাতে হয়েছিল। এই কারণেই আমি এটি এইভাবে করেছি।
অনুপস্থিত

@ রাড্ডু: এই থ্রেডে অন্য উত্তরগুলি দেখার পরে অবশেষে আমি আমার উত্তরে সেভাবে অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছি। এটি পরীক্ষা করে দেখুন। (যদিও আমি মূল কোডটি সরিয়ে নেই))
অনুপস্থিত

@ মিসিং ফ্যাক্টর, কোনটি অলস getLines().toList()হওয়া উচিত getLines().toSeq?
এলাজার লাইবোভিচ

@ এলাজার: ভাল পরামর্শ। ধন্যবাদ। :)
মিসিংফ্যাক্টর

11

খাঁজকাটা

new File("fileio.txt").with { 
    write  "hello\n"
    append "world\n"   
    println secondLine = readLines()[1]
}

অবদান রাখার জন্য ধন্যবাদ।
ব্রুক উলফ

3
আপনি "ওয়ার্ল্ড \ n" অংশকে প্রতারণা করছেন। এটি সংযোজনকারী নয়, এটি কেবল একই ফাইলের বর্ণনাকারীকে লিখছে।
ওটিজেড

মূল পোস্টে তৃতীয় স্পষ্টির বিবৃতিতে বলা হয়েছে "প্রথম লাইন লেখার পরে আপনাকে পাঠ্য ফাইলটি আবার খোলার দরকার নেই"
ওয়েন কেইনান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.